2021牛客暑期多校训练营 4
题意:
爱丽丝和鲍勃正在玩游戏。一开始,有一个无向图G 和 n节点。Alice和Bob轮流操作,Alice先上场。不能操作的玩家将输掉比赛。
每回合,玩家应该做以下操作之一:
1.删除一条边
2.删除一个连接的组件没有任何循环(不能含有环) 爱丽丝和鲍勃足够聪明,你需要找出谁会赢得这场比赛。
思路:
对于第一种操作,使得边数 - 1
对于第二种操作,使得点数 - x, 边数 -(x-1)
任何一种操作都会使得,边数 + 点数的和 减少一个奇数,所以,答案只与 n + m 的奇偶有关。
由于Alice先手,所以,如果 n + m 是奇数 ,Alice必赢,因为每一次的操作都是使得 边数 + 点数之和减少一个奇数,反之,如果为偶数则Bob赢
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
if((n+m)%2==1) cout<<"Alice"<<endl;
else cout<<"Bob"<<endl;
return 0;
}