首页 > 其他 > 详细

hdoj 1846 Brave Game (巴什博弈)

时间:2019-11-08 15:16:27      阅读:101      评论:0      收藏:0      [点我收藏+]

传送门

最简单的博弈论问题
这种问题简单来说,就是两个人在 \(n\) 个石子中,每次只能取 \(1...m\) 个石子,最先取完的人胜利,给定 \(n,m\) 求谁能胜利
比较容易发现,当 \(n=m+1\) 时,不管先手怎么取,后手都能取完,所以后手必胜
把这种局面扩展一下,如果 \(n\% (m+1)=0\) 的话,后手也必胜,因为他可以通过每次和先手一起取 \(m+1\) 个来控制局面,直到取完
那么如果 \(n\% (m+1)=s (0<s\leq m)\),那么先手可以先取 \(s\) 个,然后发现先手控制了 \(n\% (m+1)=0\) 的局面,先手必胜了
那么这个题就完成了

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int T,n,m;

int main(){
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&m);
        int temp=n%(m+1);
        if(temp>=1) printf("first\n");
        else printf("second\n");
    }
    return 0;
}

hdoj 1846 Brave Game (巴什博弈)

原文:https://www.cnblogs.com/BakaCirno/p/11820360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!