//HDOJ 4203 Doubloon Game 博弈 找规律
/*
题意:有n个硬币,两个人轮流取,每次只能取m个pow,(1,m,m^2...)
如果先手必败输出0,否则输出第一步最少取走的硬币数量
思路:找规律
当n=2时:
0 1 2 |3 4 5 |6 7 8 9 ...
P N N |P N N |P N N P ...
当n=3时:
0 1 2 3 4 5 6 7 8 9 ...
P N P N P N P N P N ...
当n=4时:
0 1 2 3 4 |5 6 7 8 9 |...
P N P N N |P N P N N |...
当n=5时:
0 1 2 3 4 5 6 7 8 9 ...
P N P N P N P N P N ...
...
规律显然
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int T,n,m;
int main(){
scanf("%d",&T);
while(T--){
scanf("%d %d",&n,&m);
if(m%2){
puts(n%2?"1":"0");
}
else{
n %= (m+1);
if(n==m)
printf("%d\n",m);
else
puts(n%2?"1":"0");
}
}
return 0;
}
HDOJ 4203 Doubloon Game 博弈 找规律
最新推荐文章于 2021-02-10 09:01:54 发布
本文深入探讨了HDOJ4203 DoubloonGame的解题策略,通过分析不同n值下游戏走向的规律,揭示了先手必败或最优策略的数学原理。详细阐述了当n为偶数或奇数时,游戏结果的变化,并提供了快速判断第一步最少取走硬币数量的方法。
1045

被折叠的 条评论
为什么被折叠?



