2012年9月17日
摘要: 拓扑排序。CODE:#include<iostream>usingnamespacestd;constintSIZE=510;inttopo[SIZE],ind[SIZE];intG[SIZE][SIZE];intn,m;inttoposort(){for(inti=1;i<=n;i++){intu;for(u=1;u<=n;u++)if(!ind[u])break;if(u>n)return0;topo[i]=u;ind[u]--;for(intv=1;v<=n;v++)if(G[u][v])ind[v]--;}return1;}voidinit(){me 阅读全文
posted @ 2012-09-17 22:15 有间博客 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 递归实现的拓扑排序。constintMAXN=510;intc[MAXN];inttopo[MAXN],t;intG[MAXN][MAXN];intn,m;intdfs(intu){c[u]=-1;for(intv=0;v<n;v++)if(G[u][v]){if(c[v]<0)return0; //存在有向环elseif(!c[v]&&!dfs(v))return0;}c[u]=1;topo[--t]=u;return1;}inttoposort(){t=n;memset(c,0,sizeof(c));for(intu=0;u<n;u++)if(!c[u]) 阅读全文
posted @ 2012-09-17 21:37 有间博客 阅读(617) 评论(0) 推荐(0) 编辑
摘要: 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量: 根据定义,用双向遍历取交集的方法求强连通分量,时间复杂度为O(N^2+M)。更好的方法是Kosaraju算法或Tarjan算法,两者的时间复杂度都是O(N+M)。本文介绍的是Tarjan算法。Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵.. 阅读全文
posted @ 2012-09-17 20:49 有间博客 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 大意:一些人按照序号排队,有些人相互喜欢,必须在一定的距离之内,而有些人,则必须相距一定的距离。思路:差分约束,注意还有s[i]-s[i-1]>=0这一题目隐含条件,如果有负环则输出-1,如果距离无限远则输出-2,否则d[n];CODE:#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<queue>usingnamespacestd;constintSIZE=10010;constintINF=0x3f3f3f3f;intu[ 阅读全文
posted @ 2012-09-17 18:05 有间博客 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 大意:国王生了一个傻儿子,只会算从s开始的n个数的和大于或者小于k,他给你一组数据si、ni、ki,让你去判断是否存在这样的序列。思路:建模,差分约束,然后判断是否存在环,并且需要判断图是否连通,而图不一定是连通的,所以我们增加一个超级源点n+1。然后最长路,最短路都行。sn = s[i+1] +s[i+2]+....s[i+ni];Tn = s1+s2+s3+s4+...sn;sn = T[si+ni]-T[si-1] >=k+1;sn = T[si+ni]-T[si-1] <=k-1;差分约束只能求>=或者<=所以要转换为+1或者-1。CODE:#include&l 阅读全文
posted @ 2012-09-17 16:11 有间博客 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你n个城市,m条道路,以及A城市与B城市之间隧道的限高,让你求最小路径。思路:二分枚举所有的高度,然后通过Dijkstra算法求得最小的路径值。注意:最后的mid不一定是正确的,需要用一个中间变量来保存。我就这错了,于是去改SPFA,改建图,纠结了好久,最后发现是二分写错了。这儿我花了两天的时间间断的找BUG,在师兄的提醒下终于找到了,我二分查找悲剧地写错了,放这提醒自己。CODE:#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include& 阅读全文
posted @ 2012-09-17 13:10 有间博客 阅读(327) 评论(0) 推荐(0) 编辑