Description

Sample Input

5 5 5

Sample Output

4

Solution

其实这题就是一个博弈DP,但是我们考虑怎么设计DP状态使我们可以用这些DP状态表示所有博弈状态。

我们发现会对局面造成影响的有第一局面的取法和第二局面的堆数,石子个数什么的。

那么又综合上博弈DP的状态特点设计出一个状态

\(f[i][j]\) 表示第一局面还剩下 \(i\) 个石子,第二局面的 \(SG\) 值为 \(j\) 时当前要操作的人是负还是胜。

转移时我们只要枚举当前选多少石子拿到第二局面。

那么怎么转移。

有一个状态并且这个状态的后继中有负的状态那么当前状态就是必赢。

#include<bits/stdc++.h>
using namespace std;int n,p,K;
const int N=1005,P=1007,M=1034;
int f[N][M];inline int SG(int x){if(x<=1) return x;if((x+1)%4==0) return x+1;if(x%4==0) return x-1;return x;
}inline int dfs(int num,int sg){if(num==0) return f[num][sg]=(sg!=0);if(f[num][sg]!=-1) return f[num][sg];for(int i=1;i<=min(num,K);++i)if(!dfs(num-i,sg^SG(i*p%P+1))) return f[num][sg]=1;return f[num][sg]=0;
}int main(){freopen("double.in","r",stdin);freopen("double.out","w",stdout);scanf("%d%d%d",&n,&p,&K);memset(f,-1,sizeof(f));for(int i=1;i<=min(n,K);++i)if(!dfs(n-i,SG(i*p%P+1))) return printf("%d\n",i),0;puts("-1");return 0;
}

转载于:https://www.cnblogs.com/JCNL666/p/10917914.html

【题解】大床Nim (2019,5.23)相关推荐

  1. 2019/2/23研究日志

    今天我们进行了第一次实践操作. 由于直接制作一个磁悬浮电子器件对于初步接触电子电工的我们来说要求太高,我们觉得循序渐进,经过试验和经验积累,逐步掌握电子电工知识,才有可能完成磁悬浮的设计和尝试制作.于 ...

  2. 训练日志 2019.1.23

    好几天没写训练日记了... 最近几天题出的不多,大部分时间都在补题... 今天做了两道模版题,一道最大团的,现学的 Bron-Kerbosch 算法,一道树形 DP 的题,最后时间不够了没交上... ...

  3. 【STM32CubeMx】学习记录(基于微雪教程)(2019/2/16——2019/2/23完结)

    教程学习网址:http://www.waveshare.net/study/article-666-1.html 2019/2/16 STM32CubeMx系列教程 1-3 2019/2/17 STM ...

  4. 香港大学MSc面试经验分享 | 2019.2.23北京场

    香港大学MSc面试经验分享 | 2019.2.23北京场 在经历了两次香港大学early admission之后(没错,这次已经是第三次面试了),终于在mainround面试之后收到了推研信,心中一块 ...

  5. PAT题集2019.5.23排名变动

    2019.5.23 团体天梯集 用户昵称 排名变动 总分变动 JS 112 -> 80 1711 -> 1765 Six 171 -> 106 1611 -> 1726 Dea ...

  6. 【题解】弃疗Nim (2019,5.23)

    Description Sample Input 5 1 2 4 2 2 Sample Output 1 1 0 1 0 Solution 这题可以直接考虑暴力,时限也给了 3s 那么简直是给暴力一条 ...

  7. “构建全球科技创新生态科技思想家”王煜全如是说(2019.4.23清水湾思享会第13期嘉宾)...

    内容来源: 2019年4月23日,主题为"人工智能与未来科技"的香港科大"清水湾"思享会[第13期]隆重举办,海银资本创始合伙人.著名科技投资人王煜全先生做了主 ...

  8. Unity3d 周分享(13期 2019.3.23 )

    选自过去1~2周 自己所看到外文内容:https://twitter.com/unity3d 和各种其他博客来源吧 csdn 的东西, 不想吐槽, 笔记的拷贝  还需要重新传图片,  代码排版等问题, ...

  9. 2019.01.23【NOIP普及组】模拟赛C组总结

    总结 这次的分数是100+100+0+100=300 第一题第一题一开始把题看错了,乱打一通,结果才发现自己打错了,把题看清后,就知道用栈,快速解决.第二题和之前做过的一道题十分相似,就是用前缀和来将 ...

最新文章

  1. javascript2秒后再执行_停车后5秒,车祸发生了!高速公路上你别再这样做了!| 一线微观...
  2. 小米:开源不仅要站在巨人的肩膀上,还要为巨人指方向
  3. 分布式锁实现:Redis
  4. 【VMCloud云平台】SCAP(四)连接公有云(一)
  5. 百度地图2.1获取密钥配置的Android签名证书的sha1值
  6. 增加 oracle服务名,oracle本地服务名配置说明
  7. 是什么优化让 .NET Core 性能飙升?
  8. java排序算法代码_Java实现八种排序算法(代码详细解释)
  9. 暗物质组成原理当然是不存在计算机,暗物质能组成生命吗?小部分暗物质可能会相互作用...
  10. ICCV 2019《Zero-Shot Grounding of Objects from Natural Language Queries》论文笔记
  11. @Param注解注意事项(小的细节)
  12. 通过kubeadm安装kubernetes 1.7文档记录[docker容器方式]
  13. springboot 找不到mapper问题
  14. 新代系统plc梯形图说明书_东莞自动化PLC编程需要多少钱
  15. 手写一个动态代理实现,手写Proxy,手写ClassLoader,手写InvocationHandler
  16. 常看网页表单数据_数据收集、整理低效繁琐?WPS表单帮你轻松解决
  17. PeckShield旗下数字资产反洗钱系统CoinHolmes亮相北京网络安全大会!
  18. pcm a律编码 c语言,PCM音频编码
  19. 两台计算机如何传输数据,详解两台电脑直连传输数据方法
  20. linux给cpu加压命令,Linux中cpupower命令起什么作用呢?

热门文章

  1. linux 命令调试分析core文件,linux环境下dump vmcore文件分析
  2. 计算机usb2.0失效,Win10电脑USB2.0-CRW没有驱动程序的解决方法
  3. java 泛型调用方法调用_java – 如何使用泛型调用最具体的方法?
  4. mysql 索引查询_mysql索引的建立和查询语句优化
  5. dns轮训python
  6. pageContext对象和config对象
  7. SQL优化:从设计表结构开始(层次型表结构设计方法)
  8. phpmyadmin教程:使用phpmyadmin创建用户
  9. C#中PostMessage和SendMessage的参数传递实例
  10. 二维傅里叶变换是怎么进行的?