题目大意:

有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博弈,每个人都有特定的取最大值)相关推荐

  1. POJ 2068 Nim 组合游戏

    题目大意:有一堆石子,两伙人,围在一起坐,坐的顺序是ABABABAB....每一个人最多能取a[i]个石子,取走最后一个石子的就输了.问谁能赢. 思路:朴素的组合游戏判定问题,这个题给了数据范围,可以 ...

  2. CodeForces - 859C Pie Rules(dp+博弈)

    题目链接:点击查看 题目大意:给出n个馅饼,现在给出一个令牌,规定持有令牌的人可以选择当前的馅饼给谁,然后下一轮令牌给没有拿到馅饼的人,如此往复,一开始鲍勃拿着令牌,问最后两人能吃到多少馅饼,两人肯定 ...

  3. POJ 2342 (树形DP)

    题目链接: http://poj.org/problem?id=2342 题目大意:直属上司和下属出席聚会.下属的上司出现了,下属就不能参加,反之下属参加.注意上司只是指直属的上司.每个人出席的人都有 ...

  4. 35+的互联网人都哪去了

    最近,经常被问到这样的问题,比如这样的: 杭哥好,目前在头条实习,发现周围真的几乎没有35+员工,那互联网大部分的35+员工都去哪了呢?以及怎么看待有一些关于35的言论总被人提? 1.第一波互联网从业 ...

  5. Fire (poj 2152 树形dp)

    Fire (poj 2152 树形dp) 给定一棵n个结点的树(1<n<=1000).现在要选择某些点,使得整棵树都被覆盖到.当选择第i个点的时候,可以覆盖和它距离在d[i]之内的结点,同 ...

  6. 35+的互联网程序员,人都哪去了?

    作者:岳京杭 最近,经常被问到这样的问题,比如这样的: 目前在头条实习,发现周围真的几乎没有35+员工,那互联网大部分的35+员工都去哪了呢?以及怎么看待有一些关于35的言论总被人提? 1.第一波互联 ...

  7. 日常(别吐槽了TwT人都傻了)

    一开始计划这次可以认真地介绍一下自己的大学同学了 然而激动了半天,最后还是放弃了... 毕竟不是每个人都愿意让别人评价,这些评价也许会给他们贴上标签 我不希望这样的事情发生,所以只能作罢 不过这些同学 ...

  8. 一本书读懂大数据(每个人都看得懂的大数据入门书) - 电子书下载(高清版PDF格式+EPUB格式)...

    一本书读懂大数据(每个人都看得懂的大数据入门书)-黄颖 在线阅读                   百度网盘下载(635f) 书名:一本书读懂大数据(每个人都看得懂的大数据入门书) 作者:黄颖 格式 ...

  9. POJ 图论分类 + DP(较全 自己又加了点)

    DP -----------动态规划 状态压缩DP 2411 (棋盘规模较大)状态压缩DP+DFS+滚动数组 2664 (棋盘规模较小)直接递推即可(DP) 2506 (棋盘规模较小)直接递推即可(D ...

  10. 这个Spring循环依赖的坑,90%以上的人都不知道

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:Mythsman 原文:https://blog.myths ...

最新文章

  1. python里format有什么用_python的format什么意思
  2. Python 开发的 10 个小贴士,你知道几个?
  3. DataAdapter.FillSchema 方法
  4. 计算机视觉——简介以及人脸数目检测
  5. 用R在地图上绘制网络图的三种方法
  6. LeetCode Palindrome Partitioning II
  7. 微服务架构-服务注册中心和服务网关(6.8) (转载)
  8. 狗狗币暴涨暴跌?数据分析师带你走进它的前世今生!
  9. Oracle读取log日志,使用log miner 分析oracle日志
  10. git clone错误
  11. 事务处理笔记《一》ADO.NET级别的事务
  12. @EnableWebMvc引发的swagger-ui.html的灾难
  13. 【筆記】八部金剛功-張道長口述記載
  14. 庚子年十月初九——十月十五
  15. 2017普实软件迎新年会报道
  16. DB2数据库相关操作
  17. 计算机三种不同类型的用户账户,网络操作系统——Windows Server 2008篇 教学课件 1 作者 刘本军 李建利 [项目5]用户与组的管理.ppt...
  18. 求空间中点到线的最短距离(Revit二次开发)
  19. 基于springboot+mybatis+jsp日用品商城管理系统
  20. 误删除Linux下/etc/shadow文件,linux修改密码出现Authentication token manipulation error的解决办法

热门文章

  1. 学习python内一般函数知识
  2. FISCO BCOS 控制台 call调用已经部署的合约 不存在does not exist
  3. 区块链 hyperledger fabric的系统链码有哪些类型 LSCC ESCC VSCC CSCC是什么
  4. JavaSE基础 ——流程控制语句
  5. springboot框架学习理解下
  6. phpstudy之解决phpmyadmin卡顿的方法
  7. myBatis无法用log4j输出日志
  8. 给Ubuntu 13.04换源 软件源、更新源
  9. Win 10 安装 Maven 与 Maven 知识点扫盲
  10. Java SE 随机数生成器 Random