HDU 1847 Good Luck in CET-4 Everybody!(博弈入门)
2015-11-14 21:13
525 查看
【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=1847
【解题报告】
由博弈论的原理我们知道,游戏在必败点P结束。那么如果一个点可以走到必败点P,那么他是一个必胜点N。同理,如果一个点只能走到必胜点N,那么他是一个必败点P。由于这道题目的数据范围只有N<=1000,所以直接暴力递推即可。
关于博弈论更详细的资料可以参见下面一篇文章:
http://blog.sina.com.cn/s/blog_83d1d5c70100y9yd.html
【参考代码】
【解题报告】
由博弈论的原理我们知道,游戏在必败点P结束。那么如果一个点可以走到必败点P,那么他是一个必胜点N。同理,如果一个点只能走到必胜点N,那么他是一个必败点P。由于这道题目的数据范围只有N<=1000,所以直接暴力递推即可。
关于博弈论更详细的资料可以参见下面一篇文章:
http://blog.sina.com.cn/s/blog_83d1d5c70100y9yd.html
【参考代码】
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<functional> using namespace std; const int bit[11]={ 1,2,4,8,16,32,64,128,256,512,1024 }; int main() { int n; int state[1500]; while(~scanf("%d",&n) ) { memset(state,0,sizeof(state)); state[0]=-1; for( int i=1;i<=n; i++ ) { for( int j=0; j<11; j++ ) { if(bit[j]>i)break; if(state[i-bit[j]]==-1)//可以走到必败态' { state[i]=1; //他是一个必胜态 break; } } if(state[i]==0)state[i]=-1;//它只能走到必胜态,所以是个必败态 } if(state ==1)printf("Kiki\n"); else printf("Cici\n"); } return 0; }
相关文章推荐
- 《Django》中模板接收到的几种数据类型
- POJ3107--Godfather(树的重心)
- golang ubuntu 安装笔记
- HDU_4115_Eliminate the Conflict(2-SAT)
- [翻译]十条有用的 GO 技术
- MFC嵌入google map
- 阿里云部署Django项目(超详细图文教程)——Part1. 服务器购买和远程连接
- go语言 robfig/cron包 实现定时 调用
- Django 设置cookies与获取cookies.
- Google支付订单真伪的验证方式
- google-play-services_lib 添加,google-play-services_lib 这个文件夹在哪里,admob
- mongostat详解
- 矩阵的对角化(Diagonalizing a Matrix )
- ZOJ-3162-To Go or Not to Go
- 【bzoj4064】[Cerc2012]The Dragon and the knights
- Golang Log 学习笔记
- goahead移植
- go语言字符串处理
- 别致的语言GO(GO语言初涉)
- go语言基础