- 博客(13)
- 收藏
- 关注
原创 在无向图中求割点
割点的定义: 在一个无向图中,去掉某一个点,该无向图不再连通,这样的点称为割点 求点割集的方法:利用tarjan算法的思想,用数组dfn[v]存储DFS遍历到点v的时间,数组low[v]存储点v能追溯到最早的祖先节点。判断一点是否是割点: 1.如果这个点是根节点并且这割点有不少于两个儿子则该节点一定是割点(去掉根节点的树其他的分支一定不再连通)如果这个点v不是根节点,但是这个点存在
2015-12-22 01:08:00
645
原创 iOS中对数据的存储的一种方法--归档
归档是一种对文件存储的一种方法## encodeObject ## 用这个方法来申明哪些数据需要存储 nsstring *name; nsstring *phone; nsstring *chatCall; nsstring *qqNumber;- (void)encodeWithCoder:(NSCoder *)encoder{ [encoder encodeObject:s
2015-12-14 23:37:51
235
原创 欧几里得算法的证明
证明要证欧几里德算法成立,即证: gcd(a,b)=gcd(b,r),其中 gcd是取最大公约数的意思,r=a mod b 下面证 gcd(a,b)=gcd(b,r) 设 c是a,b的最大公约数,即c=gcd(a,b),则有 a=mc,b=nc,其中m,n为正整数,且m,n互为质数 由 r= a mod b可知,r= a- qb 其中,q是正整数, 则 r=
2015-12-14 00:29:54
967
原创 单源最短路径-spfa算法
** int n; //表示n个点,从1到n标号 int s,t; //s为源点,t为终点 int d[N]; //d[i]表示源点s到点i的最短路 int p[N]; //记录路径(或者说记录前驱) queue q; //一个队列,用STL实现,当然可有手打队列,无所谓 bool vis[N]; //vis[i]=1表示点i在队列中 vis[i]=0表示不在队列中 *
2015-12-14 00:07:47
292
原创 HDU-3018-欧拉回路
题意:一笔画。。问最少几笔能画完。 如果是个欧拉回路一笔就可以完成,如果是个其它连通集,要根据这个集合的奇度数而定,笔划数=奇度数/2,用并查集来判断有多少个连通集,然后用vector来存这些连通集,通过判断度数是奇偶性来确定是否为欧拉回路;总之笔划数 = 奇度数/2 + 欧拉回路数//// main.cpp// hdu-3018-欧拉回路//// Created by wuweiy
2015-12-13 20:55:24
254
原创 欧拉回路的判定
#include <iostream>#include <vector>#include <algorithm>#include <queue>#include <cstdio>#include <cstring>using namespace std;#define N 1005int n,m;vector<int>Edge[N];int deg[N];bool vis[N]
2015-12-13 19:39:17
350
原创 HDU-1166-线段树
#include <cstdio>#include <cstring>struct seg{ int l; int r; int n;} T[150011];void build(int l,int r,int k)//建立线段树{ int mid; T[k].l = l; T[k].r = r; T[k].n = 0;//初始化线段
2015-12-13 17:43:28
229
原创 iOS键盘的关闭
通过点击背景view来关闭键盘UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];[self.view addGestureRecognizer:tap];[tap release];再定义一下选择器调用的方法d
2015-12-13 00:31:49
296
原创 iOS--tableView中的多余的线的去除方法
UIView*view = [UIViewnew];view.backgroundColor= [UIColor clearColor];[self.tableView setTableFooterView:view];
2015-12-13 00:15:17
519
原创 线段树
用线段树的方法解决区间操作类的问题很好用。如果用一般的数组来执行操作那么数据量只要过大,运行的时间就会超出系统所设定的通过时间,而线段树的操作是用区间的操作方法,并不是去改变每一个数组的元素;下面举个例子说明一下;N 个气球排成一排,从左到右依次编号为1,2,3....N. 每次给定2 个整数a b(a 便为骑上他的“ 小飞鸽" 牌电动车从气球a 开始到气球b 依次给每个气球涂一
2015-12-12 16:36:47
182
原创 fleury算法
在建立图的关系后应该最先找出每个点的入度和出度之和,连通图的奇度点只有两个,能构成回路的图是不存在奇度点的;在建立了图的邻接矩阵后应该先找到奇度点的个数,来判断图是否连通;算法在运行过程中删除了所有已走的路径,也就是说途中残留了所有没有行走的边。根据割边的定义,如果在搜索过程中遇到割边意味着当前的搜索路径需要改进,即提前输出某一个联通子集的访问序列,这样就能够保证访问完
2015-12-12 15:28:12
1414
原创 prime算法-最小生成树算法
Prime算法 分类: 算法总结2011-08-15 18:05 5363人阅读 评论(2) 收藏 举报算法普利姆(Prime)算法(只与顶点相关) 算法描述:普利姆算法求最小生成树时候,和边数无关,只和定点的数量相关,所以适合求稠密网的最小生成树,时间复杂度为O(n*n)。算法过程:1.将一个图的顶点分为两部分,一部
2015-11-13 20:43:36
820
转载 RMQ算法
1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。2.RMQ算法对于该问题,最容易想到的解决方案是遍历,复杂度是O(n)。但当数据量非常大
2015-11-13 16:54:32
203
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人