您的位置:首页 > 编程语言 > Go语言

(step8.2.5)hdu 1847(Good Luck in CET-4 Everybody!——巴什博弈)

2013-09-02 08:36 453 查看
题目大意:输入一个整数n,表示有的牌数。判断是Kiki赢,还是Cici赢。

解题思路:巴什博奕

1)咋一看,这道题很像巴什博奕(因为都是从一堆石头n中最多能选择m个石头),但觉得又不像巴什博奕(因为在典型的巴什博奕问题中m是固定的,而不是像现在

这样,是2的次幂数就行。)。其实2的2次幂以后的都可以是2的倍数。因为我们完全可以将这道题的m理解为2.这样就可以转化成

典型的巴什博奕问题了

2)还有的大神是通过列表来找规律的

0    1    2    3    4    5    6    7   8   9.........

P    N    N    p    N    N    p   N    N   P........可以看出,所有3的倍数都是P状态的。。。

代码如下:

/*
* 1847_1.cpp
*
*  Created on: 2013年9月1日
*      Author: Administrator
*/

#include <iostream>

using namespace std;

int main(){
int n;
while(scanf("%d",&n)!=EOF){
if(n % 3 == 0 ){
printf("Cici\n");
}else{
printf("Kiki\n");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: