Codeforces Round #646 (Div. 2) C、Game On Leaves

题目链接:C、Game On Leaves

题意:

给你一个n个节点的无根树,你每次可以删除一个叶节点。如果谁先删除x号节点谁就赢了。两个人轮流操作

题解:

如果x号节点本身就是一个叶节点,那么谁先走,谁赢

否则,也就是只有剩下两个节点时候才能移动x号节点,只需要判断n-2的奇偶性就可以了

代码:

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string>
#include<queue>
#include<deque>
#include<string.h>
#include<map>
#include <iostream>
#include <math.h>
#define Mem(a,b) memset(a,b,sizeof(a))
const double II = acos(-1);
const double PP = (II*1.0)/(180.00);
using namespace std;
typedef long long ll;
const int INF=0x3f3f3f3f;
const int maxn=1000+10;
int in[maxn];
int  main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,x;
        cin>>n>>x;
        memset(in,0,sizeof(in));
        for(int i=1; i<=n-1; i++)
        {
            int u,v;
            cin>>u>>v;
            in[u]++;
            in[v]++;
        }
        if(n==1||in[x]==1||n%2==0)
        {
            cout<<"Ayush"<<endl;
        }
        else
            cout<<"Ashish"<<endl;
    }
}
原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/13360840.html