码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1847 Good Luck in CET-4 Everybody! 四级好运!(博弈,简单)

时间:2015-05-14 00:50:24      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:

 

思路:先用P/N状态来找规律。

N状态:1 2 4 6 8 16

P状态:3 5

因为3=1+2, 无论拿1或者2皆输。看看5,只要抽掉2就变成了3,所以是N状态。看看6,可以抽掉1 2 4,若抽1,变5,则输;若抽2,变4,则输;若抽4,变2,则输。看看7,抽掉1变成6,那么是N状态。同理8也是。看看9,抽1变8输,抽2变7输,3又不能抽,抽4变5输,5 6 7又不能抽,抽8变1输。

这看起来好像有规律?1 2 4 5 7 8 都是赢。3 6 9都是输。貌似一种周期在里面,仔细看,最小的周期应该是3。若n不是3的倍数,那么可以取走1或者2来使得n-1或n-2成为3的倍数,至少我们知道令其变成3 6 9 都能成为P状态。设q!=3*k,即不是3的倍数,那么,可以通过取走1或者2就变成了3的倍数,但是还不确定这个3的倍数是不是一定是P状态,不妨设其为9,则q肯定是N状态。再设q=12,可以取1/2/4/8,但是任一种取法只能导致N状态。所以12也是P状态。就这样一直递推下去就知道所有的结果了。只要是3的倍数则必输

技术分享
 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 int n;
 5 int main()
 6 {
 7     //freopen("input.txt","r",stdin);
 8     while(cin>>n)    //输入串以每行为单位
 9     {
10         if( n%3 )
11             printf("Kiki\n");
12         else
13             printf("Cici\n");
14     }
15     return 0;
16 }
AC代码

 

HDU 1847 Good Luck in CET-4 Everybody! 四级好运!(博弈,简单)

标签:

原文地址:http://www.cnblogs.com/xcw0754/p/4502075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!