摘要: 题目描述:原题描述很清楚了,地址是:http://acm.hdu.edu.cn/showproblem.php?pid=1269分析:很简单的模板题,只要看一下是不是强连通图就可以。用一遍tarjan,看在一个集合里的点数是否等于所有点点数N。由于是练习赛,直接拿前面写过的题目poj2186的代码改了改,代码如下:#include<stdio.h>#include<string.h>#define max_n 10005#define max_e 100005int stack[max_n], top; //栈bool visited[max_n]; //该点是否在栈中 阅读全文
posted @ 2012-04-08 13:03 墙 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目描述:牛之间有支持关系,这种关系可以传递。A 支持B,B支持C,则A支持C。给出一系列关系,求出有几头牛获得了其他所有牛的支持。地址:http://poj.org/problem?id=2186分析:这道题说来惭愧,由于第一次写tarjan,第一次写缩点,在不是很了解过程的情况下看了大牛的代码,看后明白了,自己写了一遍,写出来的跟大牛的特别像!如果发现哪位大牛的代码跟本代码类似,请不要惊慌,这段代码的确是看了他们的写出来的!以上闲扯。思路:将所有强连通分量缩点,然后对这些点找出出度为0的点,如果这样的点超过两个,则题目没有答案;如果只有一个,则输出这个店所包含的点数,即有多少点缩点后得到的 阅读全文
posted @ 2012-04-08 12:56 墙 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 这道题很简单,就不细说了地址:http://acm.hdu.edu.cn/showproblem.php?pid=1285代码:#include<stdio.h>#define max_n 505int in_deg[max_n];bool live[max_n];int si[max_n], NO;struct e{ int to, next;}edge[max_n * max_n];int head[max_n], index;void add_e(int u, int v){ index++; edge[index].to = v; edge[index].nex... 阅读全文
posted @ 2012-04-08 12:37 墙 阅读(182) 评论(0) 推荐(0) 编辑