博弈--两堆一样多的石子,先手必败

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 19:47   605   0

哈理工校赛的一道博弈题

当时想了好久,都已经摸到答案的边了,最后还是没做对。傻逼了。

还是做博弈做的太少。

题目中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");
    }
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP