哈理工校赛的一道博弈题
当时想了好久,都已经摸到答案的边了,最后还是没做对。傻逼了。
还是做博弈做的太少。
题目中k的范围 是关键 k>=| n - m | 这代表什么意思呢
这代表 先手的人 拿一次 有办法将两堆石子变成一样多的状态
这有什么用呢 有大用处 我们很容易可以发现
面对两堆一样多的石子 先手必败 因为先手不论怎么取 对手都可以在另一堆做同样的操作 直到先手的人输
那么好了 这个题 由于k的范围限制 导致先手的人一定可以把两堆变成一样多 从而轮到对手取拿 对手必输
所以 n==m 必输 否则 必赢
#include<stdio.h>
int main(){
int n,m,k;
while(~scanf("%d%d%d",&n,&m,&k)){
if(n!=m)printf("HAI YOU SEI!\n");
else printf("LAOZI CHUI SI NI!\n");
}
}