POJ 2068 NIm (dp博弈,每个人都有特定的取最大值)
题目大意:
有2n个人,从0开始编号,按编号奇偶分为两队,循环轮流取一堆有m个石子的石堆,偶数队先手,每个人至少取1个,至多取w[i]个,取走最后一个石子的队伍输。问偶数队是否能赢。
分析:
题目数据不大很容易就可以联想到DP博弈,设dp[i][j]表示轮到第i个人,还有j个石子的情况下他所属队伍是否能赢。
那么如果存在一个x,使第i个人取了x个石子后第(i+1)%2n个人无论如何都败,那么他就可以赢;若不存在则输。即是:
dp[i][j]=(dp[(i+1)%2n][j-1]&dp[(i+1)%2n][j-2]&……&dp[(i+1)%2n][j-w[i]])^1;
由于有循环,所以直接dp不好做,改用记忆化搜索。
#include<stdio.h> #include<string.h> int dp[21][100000],a[21],n; int dfs(int id , int val) {if(val==0)return dp[id][val]=1;if(dp[id][val]!=-1)return dp[id][val];dp[id][val]=0;for(int i=1 ; i<=a[id] ; i++){if(val<i)break;if(!dfs((id+1)%(2*n),val-i))dp[id][val]=1;}return dp[id][val]; } int main( ) {int m;while(scanf("%d",&n)!=EOF){if(n==0)break;scanf("%d",&m);for(int i=0 ; i<2*n ; i++)scanf("%d",&a[i]);memset(dp,-1,sizeof(dp));printf("%d\n",dfs(0,m));} }
View Code
转载于:https://www.cnblogs.com/shuaihui520/p/9558883.html
POJ 2068 NIm (dp博弈,每个人都有特定的取最大值)相关推荐
- POJ 2068 Nim 组合游戏
题目大意:有一堆石子,两伙人,围在一起坐,坐的顺序是ABABABAB....每一个人最多能取a[i]个石子,取走最后一个石子的就输了.问谁能赢. 思路:朴素的组合游戏判定问题,这个题给了数据范围,可以 ...
- CodeForces - 859C Pie Rules(dp+博弈)
题目链接:点击查看 题目大意:给出n个馅饼,现在给出一个令牌,规定持有令牌的人可以选择当前的馅饼给谁,然后下一轮令牌给没有拿到馅饼的人,如此往复,一开始鲍勃拿着令牌,问最后两人能吃到多少馅饼,两人肯定 ...
- POJ 2342 (树形DP)
题目链接: http://poj.org/problem?id=2342 题目大意:直属上司和下属出席聚会.下属的上司出现了,下属就不能参加,反之下属参加.注意上司只是指直属的上司.每个人出席的人都有 ...
- 35+的互联网人都哪去了
最近,经常被问到这样的问题,比如这样的: 杭哥好,目前在头条实习,发现周围真的几乎没有35+员工,那互联网大部分的35+员工都去哪了呢?以及怎么看待有一些关于35的言论总被人提? 1.第一波互联网从业 ...
- Fire (poj 2152 树形dp)
Fire (poj 2152 树形dp) 给定一棵n个结点的树(1<n<=1000).现在要选择某些点,使得整棵树都被覆盖到.当选择第i个点的时候,可以覆盖和它距离在d[i]之内的结点,同 ...
- 35+的互联网程序员,人都哪去了?
作者:岳京杭 最近,经常被问到这样的问题,比如这样的: 目前在头条实习,发现周围真的几乎没有35+员工,那互联网大部分的35+员工都去哪了呢?以及怎么看待有一些关于35的言论总被人提? 1.第一波互联 ...
- 日常(别吐槽了TwT人都傻了)
一开始计划这次可以认真地介绍一下自己的大学同学了 然而激动了半天,最后还是放弃了... 毕竟不是每个人都愿意让别人评价,这些评价也许会给他们贴上标签 我不希望这样的事情发生,所以只能作罢 不过这些同学 ...
- 一本书读懂大数据(每个人都看得懂的大数据入门书) - 电子书下载(高清版PDF格式+EPUB格式)...
一本书读懂大数据(每个人都看得懂的大数据入门书)-黄颖 在线阅读 百度网盘下载(635f) 书名:一本书读懂大数据(每个人都看得懂的大数据入门书) 作者:黄颖 格式 ...
- POJ 图论分类 + DP(较全 自己又加了点)
DP -----------动态规划 状态压缩DP 2411 (棋盘规模较大)状态压缩DP+DFS+滚动数组 2664 (棋盘规模较小)直接递推即可(DP) 2506 (棋盘规模较小)直接递推即可(D ...
- 这个Spring循环依赖的坑,90%以上的人都不知道
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:Mythsman 原文:https://blog.myths ...
最新文章
- python里format有什么用_python的format什么意思
- Python 开发的 10 个小贴士,你知道几个?
- DataAdapter.FillSchema 方法
- 计算机视觉——简介以及人脸数目检测
- 用R在地图上绘制网络图的三种方法
- LeetCode Palindrome Partitioning II
- 微服务架构-服务注册中心和服务网关(6.8) (转载)
- 狗狗币暴涨暴跌?数据分析师带你走进它的前世今生!
- Oracle读取log日志,使用log miner 分析oracle日志
- git clone错误
- 事务处理笔记《一》ADO.NET级别的事务
- @EnableWebMvc引发的swagger-ui.html的灾难
- 【筆記】八部金剛功-張道長口述記載
- 庚子年十月初九——十月十五
- 2017普实软件迎新年会报道
- DB2数据库相关操作
- 计算机三种不同类型的用户账户,网络操作系统——Windows Server 2008篇 教学课件 1 作者 刘本军 李建利 [项目5]用户与组的管理.ppt...
- 求空间中点到线的最短距离(Revit二次开发)
- 基于springboot+mybatis+jsp日用品商城管理系统
- 误删除Linux下/etc/shadow文件,linux修改密码出现Authentication token manipulation error的解决办法