天天看點

ACM-博弈之Good Luck in CET-4 Everybody!——hdu1847 Good Luck in CET-4 Everybody!

Good Luck in CET-4 Everybody!

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 4550    Accepted Submission(s): 2915

Problem Description 大學英語四級考試就要來臨了,你是不是在緊張的複習?也許緊張得連短學期的ACM都沒工夫練習了,反正我知道的Kiki和Cici都是如此。當然,作為在考場浸潤了十幾載的當代大學生,Kiki和Cici更懂得考前的放松,所謂“張弛有道”就是這個意思。這不,Kiki和Cici在每天晚上休息之前都要玩一會兒撲克牌以放松神經。

“更新”?“雙扣”?“紅五”?還是“鬥地主”?

當然都不是!那多俗啊~

作為計算機學院的學生,Kiki和Cici打牌的時候可沒忘記專業,她們打牌的規則是這樣的:

1、  總共n張牌;

2、  雙方輪流抓牌;

3、  每人每次抓牌的個數隻能是2的幂次(即:1,2,4,8,16…)

4、  抓完牌,勝負結果也出來了:最後抓完牌的人為勝者;

假設Kiki和Cici都是足夠聰明(其實不用假設,哪有不聰明的學生~),并且每次都是Kiki先抓牌,請問誰能赢呢?

當然,打牌無論誰赢都問題不大,重要的是馬上到來的CET-4能有好的狀态。

Good luck in CET-4 everybody!

  Input 輸入資料包含多個測試用例,每個測試用例占一行,包含一個整數n(1<=n<=1000)。   Output 如果Kiki能赢的話,請輸出“Kiki”,否則請輸出“Cici”,每個執行個體的輸出占一行。

  Sample Input

1
3
        

  Sample Output

Kiki
Cici
        

  Author lcy   Source ACM Short Term Exam_2007/12/13   題目:http://acm.hdu.edu.cn/showproblem.php?pid=1847

這道題說是博弈,總感覺是個找規律呢。。。 我手算了一些數字

n 1 2 3 4 5 6 7 8 9 10
2^n 1 2 4 8 16 32 64 128 256 512 1024
sum 1 3 7 15 31 63 127 255 511 1023 2047

難道是之前玩的2048的緣故。。寫2^n這麼親切捏? 發現 當抓3,15,63,255,1023張牌時是Cici赢。 于是大膽假設:當所取的牌數為3的倍數時,Cici赢。

/************************************************
*************************************************
*        Author:Tree                            *
*From :http://blog.csdn.net/lttree              *
* Title : Good Luck in CET-4 Everybody!         *
*Source: hdu 1850                               *
* Hint  : 找規律                                *
*************************************************
*************************************************/
#include <stdio.h>
int main()
{
    int n;
    while( scanf("%d",&n)!=EOF )
    {
        if( n%3==0 )    printf("Cici\n");
        else    printf("Kiki\n");
    }
    return 0;
}