[GZOI2017]取石子游戏
\(GZOI2017D1T1\)
题目链接?不存在的
(GZOI2017 PDF)Click Here
首先,枚举第一堆石子是哪一堆,那么现在要求有多少种方案,使得其它堆石子的\(xor\)值\(\ge\)第一堆石子(若小于第一堆石子,那么一定可以取一些石子使得第一堆石子和其它堆石子\(xor\)值相等,那么整个游戏\(xor\)和为\(0\),\(Bob\)必败)。
设\(f_{i,j}\)表示前\(i\)堆石子\(xor\)和为\(j\)的方案数,随便转转就好(跳过枚举的第一堆石子)。
注意\(j\)可能大于\(200\)。
时间复杂度 \(O(n^3)\)
代码:
#include <cstdio>int n,a[205],f[205][256];
const int Mod=1000000007;void DP(const int Ign)
{for(int i=1;i<=n;++i)for(int j=0;j<256;++j)if(i==Ign)f[i][j]=f[i-1][j];//跳过else f[i][j]=(f[i-1][j]+f[i-1][j^a[i]])%Mod;//可以选,可以不选
}int main()
{scanf("%d",&n),f[0][0]=1;for(int i=1;i<=n;++i)scanf("%d",&a[i]);int Ans=0;for(int i=1;i<=n;++i){DP(i);for(int j=a[i];j<256;++j)(Ans+=f[n][j])%=Mod;}printf("%d\n",Ans);return 0;
}
转载于:https://www.cnblogs.com/LanrTabe/p/10329145.html
[GZOI2017]取石子游戏相关推荐
- BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
Time Limit: 5 Sec Memory Limit: 162 MB Submit: 871 Solved: 365 [Submit][Status][Discuss] Descripti ...
- bzoj1874: [BeiJing2009 WinterCamp]取石子游戏
1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 834 Solved: 350 ...
- 威佐夫博弈:百练OJ:1067:取石子游戏
威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 百练OJ:1067:取石子游戏 ...
- POJ 1067 取石子游戏
取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 40917 Accepted: 13826 Descripti ...
- POJ-1067取石子游戏,威佐夫博弈范例题/NYOJ-161,主要在于这个黄金公式~~
取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取 ...
- “美登杯”上海市高校大学生程序设计邀请赛 **D. 小花梨的取石子游戏**
"美登杯"上海市高校大学生程序设计邀请赛 (华东理工大学) D. 小花梨的取石子游戏 Description 小花梨有?堆石子,第?堆石子数量为??,?堆石子顺时针编号为1 − ? ...
- poj 1067 取石子游戏(博弈+威佐夫博奕(Wythoff Game))
取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 29959 Accepted: 9818 Descriptio ...
- 【结论】取石子游戏(jzoj 1211)
取石子游戏 jzoj 1211 题目大意: 有n个石子,每次可取1~k个石子(必须取),问先取者是否有必胜方法 输入样例 2 2 3 3 2 输出样例 No Yes 数据范围 20%的数据 K≤10 ...
- hdu 2516 取石子游戏
取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 信息学奥赛一本通(1218:取石子游戏)
1218:取石子游戏 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 8837 通过数: 4144 [题目描述] 有两堆石子,两个人轮流去取.每次取的时候, ...
最新文章
- Silverlight学习之——事件编程
- Python地信专题 | 基于geopandas的空间数据分析—数据结构篇
- flask + react_再写一本 Flask 书
- Python入门教程之文件读写操作知识
- 左神算法:在二叉树中找到累加和为指定值的最长路径长度(Java版)
- 共享文件原理_fishhook 的实现原理浅析
- Jeewx 捷微管家操作配置文档(开源版本)
- Oracle dbms_random随机函数包
- 前端复习之JavaScript基础
- vue项目打包部署linux_Vue项目打包部署到Nginx服务器
- Spring Boot学习笔记:Spring Boot核心配置
- C# winform程序怎么打包成安装项目(图解)
- Vijos1775 CodeVS1174 NOIP2009 靶形数独
- 使用阿里云服务器(OOS)实现图片上传
- mysql5好还是8_定投扣款哪天好?周一还是周五,月末还是月初?(定投知识8)...
- java7 新特性官方介绍_java7 新特性 总结版
- 直播预告:摄影测量影像快速立体匹配关键技术研究
- [2.1]-AutoSAR零基础学习-汽车电子控制系统简介
- 如何从道客巴巴上下载收费文档之我见
- 单臂路由及链路聚合+实验配置(均使用思科模拟器Cisco Packet Tracer Student)