摘要: http://poj.org/problem?id=2186题意:牛搞个人崇拜(怎么又是牛??牛很圣神?),还具有传递性 如果A崇拜B B崇拜C 则A崇拜 C ,求受所有牛崇拜的牛的数量解法:在强连通分量里面,每个牛相互崇拜,把强连通分量缩为一个点,缩点后的图 为一个强连通分量 或者一个 弱连通分量 总之最后出度为零的缩点 受所有的牛崇拜有一个地方:缩点时候可能会出现 多条同向的重边图缩点后 第一个缩点 到第二个缩点 有两条有向线所以最后用 in[]入度不好求 out[]为0的点只有一个的时候就找到答案了代码:#include<iostream>#include<cstdio 阅读全文
posted @ 2012-02-10 06:04 快乐. 阅读(184) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3180还牛举行正式舞会,无语 题意写的那么纠结干嘛就是求一个有向图中 所含节点个数 大于等于2的强连通分量的个数代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#define Min(a,b)a<b?a:b#define nMAX 10002#define mMAX 50002using namespace std;int head[nMAX],dfn[nMAX],low[nMAX],stack[ 阅读全文
posted @ 2012-02-10 05:43 快乐. 阅读(221) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2762就是判断一个图是不是 弱连通tarjan , 缩点之后,如果缩点图的 入度为一的点有一个 并且 出度为一的点 有一个 则是弱连通开始把有向边都改成无向边 用dfs遍历 只要图连一块就是弱连通图 ,结果证明是错滴下图(图一)这个图就不连通,但是如果依照刚才的dfs把有向边变成无向边就错了还有一个地方(图二)#include<iostream>#include<cstdio>#include<cstring>#define nMAX 10010#define mMAX 50010using namesp 阅读全文
posted @ 2012-02-10 05:38 快乐. 阅读(195) 评论(0) 推荐(0) 编辑