- 题目链接:博弈
- 如果没有权限看题,请看下图
- 题目思路:通过手玩样例,我们可以得出一些结论:
- 如果k==1,那么可以不断地删数,即为平局。
- 我们可以把区间内的每个数判断一下,看能用几次k把那个数弄为0,把次数累加,最后发现,胜利结果与总次数的奇偶性有关。
- 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using namespace std;
int l,r,k;
ll tot;
int main() {
while(scanf("%d%d%d",&l,&r,&k)!=EOF) {
if(k==1) {
printf("Draw\n");
continue;
}
tot=0;
for(int i=l; i<=r; i++) {
ll time=1;
while(time<=i) {
tot+=time;
time*=k;
}
tot&=1;
}
// cout<<tot<<endl;
if(!(tot&1)) {
printf("Cwbc\n");
}
else {
printf("XHRlyb\n");
}
}
return 0;
}