首页 > 其他 > 详细

hdu1325

时间:2018-10-20 23:00:37      阅读:186      评论:0      收藏:0      [点我收藏+]
没过,以后再来看
/*
有向图,判断树 每个点保存出度 每个非根点最多只能有一个入度 用并查集判断连通性 */ #include<iostream> #include<cstring> #include<cstdio> #define MAXN 1000000 using namespace std; int F[MAXN]; int in[MAXN]; bool used[MAXN]; int circle,edge; int find(int x){ if(F[x]==-1) return x; return F[x]=find(F[x]); } void bing(int a,int b){ int t1=find(a); int t2=find(b); if(t1!=t2) F[t1]=t2; else circle=1; } void init(){ circle=edge=0; memset(F,-1,sizeof F); memset(in,0,sizeof in); memset(used,0,sizeof used); }//要求,circle=0, int main(){ int tt=0; int u,v; while(scanf("%d%d",&u,&v)==2){ if(u==-1 && v==-1) break; if(u==0 && v==0){ printf("Case %d is a tree.\n",tt); continue; } init(); int Max=-1; edge++; Max=max(Max,u);Max=max(Max,v); bing(u,v); while(1){ scanf("%d%d",&u,&v); if(u==0) break; edge++; Max=max(Max,u);Max=max(Max,v); bing(u,v); } int cnt=0; if(circle==0 && edge) } return 0; }

hdu1325

原文:https://www.cnblogs.com/zsben991126/p/9823357.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!