博弈问题
huanghongxun
这个作者很懒,什么都没留下…
展开
-
CodeForces 603C/604E Lieges of Legendre SG函数
这个游戏叫LOL。还是奶牛题。 有两个玩家,有n堆石子,每堆有ai个石子,每个玩家每次操作有2个选择: 1. 从一堆非空石子里拿走1颗石子。 2. 选择一堆2x个石子的石堆,更换成k堆x个石子的石堆。 2个玩家轮流操作。先取完石子者胜。求先手为必胜还是后手必胜。 稍微换了一下题目描述,Nim游戏的升级版。 先回顾了一下sg函数。。这个游戏相当于两个游戏的和。 所以xor的性质仍然可用原创 2015-12-06 20:53:00 · 1133 阅读 · 0 评论 -
CodeForces 455B A Lot of Games 字典树 博弈
给定n个字符串,进行k次游戏,每次游戏初始字符串为空串,两人轮流向新字符串末尾加1个字符且新串必须为n个字符串中的某个的前缀,不能操作的人输。 第i次游戏输的为第i+1次游戏的先手,最后一句赢者胜,求第1次游戏先手是否必胜。 前缀->字典树->判断博弈状态。 对每次游戏有4个状态: 先手可决定胜败,后手可决定胜败,先手必胜,后手必胜。 必胜表示2人轮流胜。 可决定成败表示输k-1次并最原创 2015-12-10 19:53:16 · 681 阅读 · 0 评论 -
CodeForces 15C Industiral Nim Nim游戏
给出第一个石堆的石子数x和石堆数m,石堆中石子数为首项为x 公差为1 项数为m 的等差数列,求Nim游戏结果。 即计算异或值x^(x+1)^(x+2)^...^(x+m-1),判断是否非0。 x和m的范围是long long,无法暴力。。 发现性质:(2x)^(2x+1)=1,利用一下就好了。 如果首项为奇数或末项为偶数都要单独异或答案。 剩下的都是1啦。 #include int原创 2015-12-09 15:22:19 · 659 阅读 · 0 评论 -
Ural 1087|The Time to Take Stones|博弈论|动态规划
http://acm.timus.ru/problem.aspx?space=1&num=1087题目你应该知道一种游戏,2个玩家轮流从一堆石子中取走1到3个石子。最后一个取走石子的人输。我们泛化这个游戏的条件。假设玩家可以从石子堆中一次取走k1,k2,⋯,kmk_1,k_2,\cdots,k_m个石子。假设比赛双方都很聪明,每一步的选择和之前的选择没有关系。输入第一行2个整数n,m(1≤n≤100原创 2017-10-06 21:22:23 · 347 阅读 · 0 评论 -
POJ 2368|URAL 1023|Buttons|博弈论
http://acm.timus.ru/problem.aspx?space=1&num=1023题目大意给定K(3≤K≤108)K(3\leq K\leq 10^8)个石子,一次最多取L(2≤L<k)L(2\leq L<k)个石子,问L最小取多少能使后手必胜。背景正如你所知道的,Yekaterinburg市夺得了2032年夏季奥运会的举办权。这允许作为比赛举办国的俄国能够修改一些比赛项目。所以为了原创 2017-10-03 22:54:10 · 403 阅读 · 0 评论 -
Southeastern European Regional Programming Contest (SEERC) 2017
A: Concerts 题目大意 有 26 种演唱会,John 希望按照某个顺序看某些类型的演唱会,但是看完某种类型的演唱会后需要至少休息一定的天数才能继续看演唱会,问有多少种看演唱会的方案 题解 简单的 dp,但是 CodeForces 上的数据范围是假的。。花了好些时间检查为什么 RE。。 #include <bits/stdc++.h> using namespace std;...原创 2018-10-25 17:50:20 · 404 阅读 · 0 评论