P5675-[GZOI2017]取石子游戏【博弈论,dp】
正题
题目链接:https://www.luogu.com.cn/problem/P5675
题目大意
nnn堆石子,第iii堆有aia_iai个。指定一些石子堆使得先手必胜并指定一个先手第一个取的位置使得先手必败,求有多少方案数。
解题思路
根据NIMNIMNIM游戏,只要石子数异或和为000则先手必败。
然后我们考虑枚举指定先手先去哪一堆石头,我们要选择一些石子堆使没有任何一种方法取走一些石头使得先手必败。
我们用fi,jf_{i,j}fi,j表示在不包括枚举的石头堆的情况下,前iii堆石头有多少种选择方案使得其异或和为jjj。然后若强制先手选择第kkk堆石头那么方案数就是∑i=ak∞fn,i\sum_{i=a_k}^\infty f_{n,i}i=ak∑∞fn,i
时间复杂度O(n3)O(n^3)O(n3)
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=210,XJQ=1e9+7;
int n,a[N],f[N][256],ans;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int k=1;k<=n;k++){f[0][0]=1;for(int i=1;i<=n;i++){if(i==k){for(int j=0;j<256;j++)f[i][j]=f[i-1][j]; }else{for(int j=0;j<256;j++)f[i][j]=(f[i-1][j]+f[i-1][j^a[i]])%XJQ;}}for(int i=a[k];i<256;i++)ans=(ans+f[n][i])%XJQ;}printf("%d",ans);
}
P5675-[GZOI2017]取石子游戏【博弈论,dp】相关推荐
- BZOJ 1413: [ZJOI2009]取石子游戏 博弈+Dp
title BZOJ 1413 Description 在研究过Nim游戏及各种变种之后,Orez又发现了一种全新的取石子游戏,这个游戏是这样的: 有n堆石子,将这n堆石子摆成一排.游戏由两个人进行, ...
- POJ1067 取石子游戏 跪跪跪,很好的博弈论
取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 29951 Accepted: 9814 Descriptio ...
- bzoj 1413: [ZJOI2009]取石子游戏(博弈+DP)
1413: [ZJOI2009]取石子游戏 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 711 Solved: 470 [Submit][Sta ...
- 博弈论——《取石子》《取石子游戏》
传送门:活动 - AcWing 思路: 结论:在所有堆的石子个数>1的情况下 只要石子数+石子堆数-1==b是奇数,那么先手必胜.b是不计算所有个数为1的石子堆得出的. b是奇数的情况下一定存在 ...
- 【POJ】1067 取石子游戏(博弈论)
Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...
- 博弈论——1218:取石子游戏
1218:取石子游戏时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10430 通过数: 4939 [题目描述] 有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取 ...
- 博弈论之取石子游戏的学习
以下内容来自转载: 博弈问题简介 所讨论的博弈问题满足以下条件: 玩家只有两个人,轮流做出决策 游戏的状态集有限,保证游戏在有限步后结束,这样必然会产生不能操作者,其输 对任何一种局面,胜负只决定于局 ...
- 【结论】取石子游戏(jzoj 1211)
取石子游戏 jzoj 1211 题目大意: 有n个石子,每次可取1~k个石子(必须取),问先取者是否有必胜方法 输入样例 2 2 3 3 2 输出样例 No Yes 数据范围 20%的数据 K≤10 ...
- 4005. 取石子游戏
Powered by:NEFU AB-IN Link 文章目录 4005. 取石子游戏 题意 思路 代码 4005. 取石子游戏 题意 Alice 和 Bob 正在玩一个取石子游戏. 共有 n个石子, ...
- BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
Time Limit: 5 Sec Memory Limit: 162 MB Submit: 871 Solved: 365 [Submit][Status][Discuss] Descripti ...
最新文章
- 无线Trace脚本(旧格式)-平均延时
- retinaface 改进
- Oracle 监听器日志配置与管理
- how to fix error 25007 : loadlibraryshim()
- 谷歌利用OKR系统考核 脑力行业或可借鉴
- 大型Javascript应用架构的模式(译文)
- linux内核编译的image,内核编译时生成uImage的办法
- android nv21图片格式,Android -- 将NV21图像保存成JPEG
- linux内核中打开文件 及属性控制
- 分布式消息中间件之kafka设计思想及基本介绍(一)
- 函数及脚本的综合应用
- SuSE 10操作系统中设置系统时间的方法
- 网站如何优化才是成功的
- com.github.pagehelper.PageHelper cannot be cast to org.apache.ibatis.plugin.Interceptor和oracle不识别
- PyTorch 实现 GradCAM
- Window图片和传真查看器不能用
- cad抠图 lisp_用Autolisp对AutoCAD进行二次改造
- jfif怎么改成jpg格式
- Android获取wifi的ip地址
- javaweb练手项目jsp+servlet简易购物车系统
热门文章
- dialog element 删掉标题_ElementUI 销毁Dialog数据(简单粗暴)
- 筛选装置用c语言编程,一种空壳瓜子筛选装置的制作方法
- mock java_JAVA的mock工具mockito简介
- hive 导入mysql数据库_求助 Hive 导入MYsql 数据库 报错啊
- 前端 input怎么显示null_小猿圈WEB前端之HTML5+CSS3面试题(一)
- react全局状态管理_rxv: 在React中用Vue3的reactivity包实现状态管理。
- C++ 学习之旅(4)——调试Debug
- [Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value
- Java IDEA断点调试
- [Java基础]反射获取成员变量并使用