题目大意
给出一棵树,可以选择一个未被染色的节点,将它到根的路径染色,两个人轮流操作,最后染色的输,求先手是否必胜。
解题思路
这是一题结论题,除非只有一个节点,不然先手必胜。考虑先手选根,如果后手选某个节点必胜,那先手可以不选跟选那个点。
code
#include<set>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
#define fo(i,j,k) for(int i=j;i<=k;i++)
#define fd(i,j,k) for(int i=j;i>=k;i--)
using namespace std;
int cas,n;
int read(){int val=0;char ch=getchar();for(;(ch<'0')||(ch>'9');ch=getchar());for(;(ch>='0')&&(ch<='9');val=val*10+ch-'0',ch=getchar());return val;
}
int main(){freopen("d.in","r",stdin);freopen("d.out","w",stdout);cas=read();fo(ca,1,cas){n=read();fo(i,1,n-1)int x=read();if(n>1)printf("YES\n");else printf("NO\n");}return 0;
}