(step8.2.5)hdu 1847(Good Luck in CET-4 Everybody!——巴什博弈)
题目大意:输入一个整数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");}}}