1600*C. Game On Leaves(博弈游戏&树)

Problem - 1363C - Codeforces

1600*C. Game On Leaves(博弈游戏&树)_第1张图片

1600*C. Game On Leaves(博弈游戏&树)_第2张图片 

解析:

        我们将目标结点 x 当作树的根,显然,到当 x 的度为 1 的时候,此时行动的人胜利。

        我们假设现在的情况为,只剩余三个点,再选择任意一个点,则对方获胜。但是两个人都是聪明的,都不想在自己的行动时碰到这种情况。

        所以,我们计算当 “剩余两个点,并且其中一个点是目标点时”,总计行动了 cnt 次。

        显然,当 cnt 为偶数,则第一人获胜;否则第二人获胜。

        注意特判点数很少的情况。

#include
using namespace std;
const int N=2e5+5;
int t,n,k;
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d%d",&n,&k);
		int cnt=0;
		for(int i=1;i

你可能感兴趣的:(codeforces,游戏,c语言,算法,c++,数学,博弈论)