| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
该题根本不用并查集。树的性质。。附AC代码,,/*水题,根本用不着并查集。。。树的性质:结点的个数==边的个数+1 空树的时候单独判断就行了。。23333333333
*/
#include<cstdio> //顶点的个数==边的个数+1
#include<cstring>
const int MAXN=1000000;
int par[MAXN];
int main()
{
int m,n;
int t=1;
while(scanf("%d%d",&m,&n)&&m>=0&&n>=0){
memset(par,0,sizeof(par));
int e=1;
if((m==0&&n==0)){ //空树
printf("Case %d is a tree.\n",t++);
continue;
}
par[m]=par[n]=1;
while(scanf("%d%d",&m,&n)&&m>0&&n>0){
e++;
par[m]=par[n]=1;
}
int v=0;
for(int i=0;i<MAXN;i++)
v+=par[i];
int flag=(v==e+1);
printf("Case %d ",t++);
if(flag)
puts("is a tree.");
else
puts("is not a tree.");
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator