博弈论 & SG函数
Hillan_
An OIer From ZJ
展开
-
BZOJ3759: Hungergame
分析之后发现只要有一组箱子的异或和为0那么就可以赢然后就是用高斯消元求线性基#include<cstdio> #include<iostream> #include<cstring> using namespace std; int a[21]; char c; inline void read(int &a) { a=0;do c=getchar();while(c<'0'||c>'9')原创 2016-03-01 21:06:20 · 417 阅读 · 0 评论 -
博弈论与SG函数
由于BZOJ被卡 有时间去看一些以前没去看的东西了 比如说博弈论 SG是用来应对一类博弈论问题的 博弈论问题可以抽象成一个有向无环图 然后G(x)=mex({G(y)|x->y}) mex表示后面这个集合最小的没有的元素(非负 mex({1,2})=0 mex({})=0 然后连边就是以是否可以到达这个决策点连边 多个游戏的并的先手必胜可以用每个游戏的SG函数的异或求解(Xor)原创 2016-02-18 17:12:40 · 376 阅读 · 0 评论 -
BZOJ3492: PA2012 Binary Dodgeball
感谢YJQ和visitWorld两位打野..画个图发现是个Nim游戏 然后发现是个数位DP..#include<cstdio> #include<iostream> #include<cstring> using namespace std;#define ll long long ll DP[51][4][81][2];ll check(ll max) { ll base=1ll<<49原创 2016-05-18 12:43:20 · 559 阅读 · 0 评论 -
Hackerrank SG 函数小结
今天去做了一下Hackerrank上的博弈题 感觉某些Hard有点偏容易?Simple Game: https://www.hackerrank.com/challenges/simple-game 思路:分k=2 k=3 k>=4讨论 计算出SG函数之后直接暴力DPMove the Coins: https://www.hackerrank.com/challenges/move-t原创 2016-11-14 20:08:27 · 540 阅读 · 0 评论 -
Ural1540 Battle for the Ring
区间DP+SG函数看到代码淦过去的时候我的内心是崩溃的… 明明O(n^4)啊。。#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> using namespace std;char c; inline void read(int&a)原创 2016-12-11 19:22:25 · 347 阅读 · 0 评论