博弈---ZOJ 3057 Beans Game(DP博弈)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3057
有豆类三个桩。TT和DD挑选任意数量的豆子从任何两堆轮流任何桩或相同的数字。谁拿到最后一个Bean将获胜。TT和DD是很聪明的。
#include<stdio.h> #define N 300+4
bool dp[N][N][N]={0};//用bool比int省空间
void Init(){
int i,j,k,t;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
for(k=0;k<N;k++)
if(dp[i][j][k]==0)//当前位于必败态,前一步为必胜态,取的方法如下
{
for(t=1;t+k<N;t++) //t从1开始
dp[i][j][k+t]=1;
for(t=1;t+j<N;t++)
dp[i][j+t][k]=1;
for(t=1;t+i<N;t++)
dp[i+t][j][k]=1;
for(t=1;t+i<N&&t+j<N;t++)
dp[t+i][t+j][k]=1;
for(t=1;t+j<N&&t+k<N;t++)
dp[i][t+j][t+k]=1;
for(t=1;t+i<N&&t+k<N;t++)
dp[t+i][j][t+k]=1;
} }
int main()
{
Init();
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF){
printf("%d\n",dp[a][b][c]);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
博弈---ZOJ 3057 Beans Game(DP博弈)的更多相关文章
- zoj 3057 Beans Game 博弈论
思路:三维DP,刚开始用记忆化搜索,MLE…… 后来改为直接预处理所有的情况. 总之就是必败态的后继是必胜态!!! 代码如下: #include<iostream> #include< ...
- ZOJ 3057 Beans Game 博弈论 sg函数
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3057 典型的sg函数,数据范围卡得真好啊 代码 #include<c ...
- codevs 1421 秋静叶&秋穣子(树上DP+博弈)
1421 秋静叶&秋穣子 题目描述 Description 在幻想乡,秋姐妹是掌管秋天的神明,作为红叶之神的姐姐静叶和作为丰收之神的妹妹穰子.如果把红叶和果实联系在一 起,自然会想到烤红薯 ...
- hdu6199 gems gems gems dp+博弈
/** 2017 ACM/ICPC Asia Regional Shenyang Online 解题报告 题目:hdu6199 gems gems gems 链接:http://acm.hdu.edu ...
- POJ 2068 NIm (dp博弈,每个人都有特定的取最大值)
题目大意: 有2n个人,从0开始编号,按编号奇偶分为两队,循环轮流取一堆有m个石子的石堆,偶数队先手,每个人至少取1个,至多取w[i]个,取走最后一个石子的队伍输.问偶数队是否能赢. 分析: 题目数据 ...
- ZOJ Problem Set - 3822Domination(DP)
ZOJ Problem Set - 3822Domination(DP) problemCode=3822">题目链接 题目大意: 给你一个n * m的棋盘,每天都在棋盘上面放一颗棋子 ...
- Beans Game(博弈 | | DP)zoj 3057
Beans Game Time Limit: 5 Seconds Memory Limit: 32768 KB There are three piles of beans. TT and DD pi ...
- ZOJ - 3057 D - Beans Game(三堆威佐夫博弈)
Beans Game Time Limit: 5 Seconds Memory Limit: 32768 KB There are three piles of beans. TT and DD pi ...
- zoj 3057 博弈
思路:对于TT来说,如果数量分别为a a b或 a b a,或 b a a的形式,那么TT必赢,因为TT可以使其成为 a a a的形式,那么不论DD 怎么拿,都是TT最后使其成为a a a 的形式,0 ...
随机推荐
- html-头标签的使用
HTML两部分组成 head和body ** 在head里面的标签就是头标签 ** title标签:表示在标签上显示的内容 ** meta标签:设置页面的一些相关内容(用的比较少) <meta ...
- 大数据学习--day16(集合总体架构--ArrayList--LinkedList)
集合总体架构--ArrayList--LinkedList Collection接口的实现类用法上都有相似的方法.Map同理. List: 特性 : 1. 有索引 2. 有序 ...
- STM32 Startup**.s文件中使用的 __main C函数入口
代码: ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main L ...
- less-7
题目是要求导出文件GET字符型注入 看看代码 这里可以使用报错注入 先按要求用导出文件做 导出文件就是可以向服务器写入文件,但是利用的时候要知道数据库,网站的路径 我们现在less-1查看 www目录 ...
- 使用nohup或者tmux将程序挂在后台
程序挂在后台 nohup nohup 命令 & 这样的命令会将屏幕的输出重定向到同目录的nohup.out中,可以使用 > 来重定向输出. nohup 命令 > .log & ...
- 【Mac】解决「另一个活跃的 Homebrew 进程正在进行中」问题
问题描述 在安装 tesseract 的语言包时,由于网络下载速度太慢,我按下 ctrl + z 退出了安装,当再次输入安装命令时,系统报错如下: 解决方法 使用以下命令删除 homebrew 进程锁 ...
- MySQL高级——课程大纲
一.课程概述 总体结构概述: //特别注意本次课程目标在于写出高效的JAVA代码,而非DBA等的专业调优 各章节概述
- 20155220 实验四 Android开发基础
20155220 实验四 Android开发基础 实验内容 (一)Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for ...
- 20155307 2016-2017第二次《Java程序设计》课堂实践项目
一.String类的使用 模拟实现Linux下Sort -t -k 2的功能.参考 Sort的实现. 在java.lang包中有String.split()方法,它可以把字符串分割为好几个小的字符串. ...
- 用sudo 运行命令的时候,环境变量用的是super用户的环境变量
比如今天在~/.bashrc设置了JAVA_HOME, 而sudo运行命令的时候却显示没有设置可用的JAVA_HOME