博弈论
LowestJN
强省弱OIer
展开
-
[猜结论][乱搞][博弈]Codechef . Palindromic Game
传送门猜猜结论就很水了… 如果A的字符串中不存在B的字符串中没有的字符,那么B肯定赢 如果A的字符串中存在B中没有的,且个数大于等于2,那么A赢 A放一个B中没有的,如果B中没有A中不存在的字符,那么A赢 否则的话,要不B赢,要不构不成回文串,后者也算B赢#include <cstdio> #include <iostream> #include <algorithm> #include <原创 2017-08-18 21:03:37 · 361 阅读 · 0 评论 -
[博弈 && Splay维护DFS序]BZOJ3729 .Gty的游戏
可以看成巴什博弈和NIM的游戏权值全部对L+1取模,然后只看子树中奇数层的亦或和是不是零就可以了。因为强制在线,所以只能有Splay来维护DFS序#include <cstdio> #include <iostream> #include <algorithm> #include <map>using namespace std;const int N=500010;map<int,int> M;原创 2017-09-27 13:40:03 · 315 阅读 · 0 评论 -
[博弈] Codeforces Gym101190 NEERC2016G. Game on Graph
有向图博弈Manchery题解#include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <cstring>using namespace std;typedef pair<int,int> par;const int N=100010;int n,m,cnt,G[N],du[N],idu[原创 2017-10-23 20:05:21 · 474 阅读 · 0 评论 -
[博弈]Atcoder AGC002 E. Candy Piles
把A排序一遍,设刚开始在(0,0)点,那么操作一相当于右移,操作二相当于上移,这就可以用SG函数来解决。边界的SG值为0,而且可以证明(x,y)的SG值和(x+1,y+1)的SG值相同,但是(x+1,y+1)不是边界那么x,y同时加1,直到到达边界之前,然后算一下就好了。#include <cstdio> #include <iostream> #include <algorithm>using n原创 2017-12-06 20:48:39 · 720 阅读 · 0 评论 -
[博弈 & 字典树合并] BZOJ4730. Alice和Bob又在玩游戏
每棵树单独考虑对于每个子树,通过枚举删去的点,可以算出剩下的所有树的SG值的异或值的集合,集合的MEX就是这个子树的SG值用字典树维护所有情况,合并的时候打个标记,然后字典树合并就行了#include <cstdio> #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N=原创 2018-01-02 17:54:33 · 693 阅读 · 0 评论 -
[DP 博弈] Topcoder SRM579 Div1. RockPaperScissors
每一轮的策略跟之前出现过的剪刀石头布的数量有关 另 fi,a,b,cfi,a,b,cf_{i,a,b,c} 表示之前出现了 aaa 次石头, bbb 次剪刀 ,ccc 次布,然后第 iii 个筛子没用过的概率 DP一下,每一轮独立算贡献 // BEGIN CUT HERE // END CUT HERE #include <vector> #include <...原创 2018-02-28 11:12:04 · 371 阅读 · 0 评论 -
[线段树 博弈] 一道博弈题
障碍点数和询问点数都是1e5 坐标范围为1e9(实际数据既然有大于1e9的) 一个点的下方或左边存在必败点,则为必胜点,否则为必败点 同一行的障碍会把这一行分成很多段,段与段之间是互不影响的。 考虑同一段的点,若其中一个点为必败点,则之后的点一定是必胜点,也就是说要找到第一个必败点 扫描线枚举每一行,用线段树维护每个位置是否有必败点,每一段的询问相当于在线段树上二分找到第一个没有必败点...原创 2018-03-15 10:41:14 · 396 阅读 · 0 评论 -
[博弈] LOJ#2471. 「九省联考 2018」一双木棋
考虑暴力。 每次枚举放哪个位置,设已经放了棋子的位置集合为 SSS,fSfSf_S 表示当前放置情况为 SSS 时,双方采用最优策略后,两个人的权值和的差。 那么如果是菲菲,会选择 fS+ai,jfS+ai,jf_S+a_{i,j} 最大的,牛牛会选择 fS−bi,jfS−bi,jf_S-b_{i,j} 最小的,然后跑dfs 实际上如果记忆化一下就能过了。 考虑每一种合法的状态,棋子都是放...原创 2018-04-07 21:16:17 · 470 阅读 · 0 评论