题意:给出一个图,问是否是一棵树。
做法:边和点的关系是点的个数等于边的个数+1;坑点在于当点和边都是0的时候,也输出yes。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
int main()
{
int a,b;
set<int> s;
int ans = 0;
while(~scanf("%d%d",&a,&b))
{
if(a == -1 && b == -1) return 0;
if(a == 0 && b == 0)
{
int total = s.size();
if(total - ans == 1)
printf("Yes\n");
else if(total == 0 && ans ==0)
printf("Yes\n");
else printf("No\n");
s.clear();
ans = 0;
}
else
{
ans ++;
if(s.count(a) == 0)
s.insert(a);
if(s.count(b) == 0)
s.insert(b);
}
}
return 0;
}