HDOJ 1325 并查集
跟小希的迷宫基本一样,只是此题是有向图,要注意:1无环 2 只有一个入度为0的结点(根结点),
不存在入度大于1的结点。输入结束条件是两个负数,而不是-1,不然会TLE。
#include<stdio.h>
#define NUM 23
int root[NUM], visit[NUM], lu[NUM];
void init(){
for(int i=; i<=NUM; i++){
root[i]=i;
visit[i]=;
lu[i]=;
}
}
int find(int x){
while(root[x]!=x)
x=root[x];
return x;
}
void merge(int a, int b){
int x=find(a);
int y=find(b);
root[x]=y;
}
int main(){
int a,b,i,flag,count;
init();
flag = ;//judge
count = ;//numcase
while(EOF != scanf("%d%d",&a,&b)){
if(a < || b < ) break;
if(visit[a] == ) visit[a] = ;
if(visit[b] == ) visit[b] = ;
lu[b]++;
//如果是相同的根,会形成环
if(find(a) == find(b) && a != && b != && a != b) flag = ;
else merge(a,b);
if(a== && b==){
count++;
int cnt=;
for(i=; i<NUM; i++){
if(visit[i] == && root[i] == i)
cnt++;
if(cnt > || lu[i] > ) //判断是否有2个以上的根 && 不能有入度大于1的点
flag = ;
}
if(!flag)
printf("Case %d is not a tree.\n",count);
else printf("Case %d is a tree.\n",count);
init();
flag=;
}
}
return ;
}
HDOJ 1325 并查集的更多相关文章
- HDOJ 1272 并查集
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- HDOJ 3635 并查集- 路径压缩,带秩合并
思路来源:http://blog.csdn.net/niushuai666/article/details/6990421 题目大意: 初始时,有n个龙珠,编号从1到n,分别对应的放在编号从1到n的城 ...
- HDOJ 2120 并查集
并查集的应用,用来查找被分割的区域个数. 即当两个节点值相同时说明已经为了一个圈,否则不可能,此时区域个数加1. #include<iostream> #include<cstdio ...
- hdu 1325(并查集)
Is It A Tree? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- HDOJ 1272 并查集 不相同父节点
判断两点:1.任何2点的父节点不能相同->否则会导致2点间有多条通路2.所有点只有1个集合 存在一个小坑,就是第一次输入 0 0 的时候,应该输出 Yes , 否则会WA MY AC Code ...
- hdoj 1116 Play on Words 【并查集】+【欧拉路】
Play on Words Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- hdoj 1325 Is It A Tree? 【并查集】
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/shengweisong/article/details/34099151 做了一上午,最终ac了 w ...
- 并查集(HDOJ 1856)
并查集 英文:Disjoint Set,即“不相交集合” 将编号分别为1…N的N个对象划分为不相交集合, 在每个集合中,选择其中某个元素代表所在集合. 常见两种操作: n 合并两个集合 ...
- HDOJ并查集题目 HDOJ 1213 HDOJ 1242
Problem Description Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. ...
随机推荐
- [译]Stairway to Integration Services Level 16 – Flexible Source Locations (多文件导入)
介绍 在本文中我们将利用SSIS参数,变量 以及 Foreach Loop Container 从多个源动态导入数据. 开始前我们先下载一些数据.WeatherData_Dec08_Apr09.zip ...
- iOS开发--汉字转成没有声调也没有空格的拼音
//汉字转成没有声调也没有空格的拼音- (NSString *)transformToPinYin:(NSString *)wordStr { NSMutableString *mutable ...
- git从github下载代码
Github作为远程仓库的使用详解 http://blog.csdn.net/djl4104804/article/details/50778717 centos local: 通过g ...
- 在Visual Studio中使用FFTW库
FFTW不用做过多介绍,一般都是在linux下使用,包括放出windows版的作者也自己声明:we don't use Windows ourselves 但是由于要和MIC混合编程,想先在本地使用, ...
- vs 2010 网站项目和asp.net 应用程序引用webservice
项目需要做对接,对方提供的是一个webservice接口,自己建了个网站项目,然后添加web 引用,一切正常. 当实际编码的时候,发现一些类.方法找不到. 百思不得其解,只得对照对方提供的demo 看 ...
- 远程读取URL 建议用curl代替file_get_contents
初学php的朋友们,很容易翻一个错误,在写采集程序或者调用api接口总会有线考虑到使用file_get_contents函数来或许内容,程序的访问量不大倒是没什么影响,但是访问量提升了那非常的悲剧了, ...
- 我的Python成长之路---第六天---Python基础(19)---2016年2月20日(晴)
shelve模块 shelve模块是pickle模块的扩展,可以通过key,value的方式访问pickle持久化保存的数据 持久化保存: 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- utf8格式源代码中的字符串,默认都会当作char来处理,除非用L""符号来修饰
原先QString("mystrr"),现在都不认了,必须都要加上L才行 原先:m_conn->put_HttpProxyAuthMethod("Basic&quo ...
- springMVC框架下JQuery传递并解析Json数据
springMVC框架下JQuery传递并解析Json数据
- poj 1080 zoj 1027(最长公共子序列变种)
http://poj.org/problem?id=1080 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=27 /* zoj ...