才开始一直想着并查集,看了别人的思路 边数==点数-1来判断,解决了, 自己不行啊 ,唉
#include<stdio.h>
#include<set>
using namespace std;
set<int>S;
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)&&(a!=-1||b!=-1))
{
if(a==0&&b==0) printf("Yes\n");
int num=1;
S.insert(a);
S.insert(b);
while(scanf("%d%d",&a,&b)&&(a||b))
{
S.insert(a);
S.insert(b);
num++;
}
if(S.size()-1==num) printf("Yes\n");
else printf("No\n");
S.clear();
}
return 0;
}