
博弈
DIDCJS
自律给予自由
展开
-
Fibonacci again and again HDU - 1848
需要理解SG函数,自行百度。(至今证明还没有完全看懂)结论: 公平组合游戏(ICG),都符合 :多个游戏的结果=各子游戏的异或和。sg【i】=mex(sg【j】| j为i的后继(比如现在是5个苹果,每次只能拿2个,那么3个苹果就是5个苹果的后继))//简单来讲就sg【i】是当前集合的最小的非负整数那么这道题我们可以预处理sg【i】的值,最后把sg[n]^sg[m]^sg[p]就原创 2017-04-19 20:24:17 · 426 阅读 · 0 评论 -
HDU 2509 Be the Winner (Anti-Nim)
Anti-Nim博弈,最后取完就为输。定义:P=各堆异或值和为0,N各堆异或值和不为0. 1代表所有堆中只有一堆充裕堆(数量>=2) ,2代表所有堆中超过一堆充裕堆 ,0代表无充裕堆(即是所有堆皆为0) 堆中数量为1称为孤单堆有以下结论:1:) P1,P2,N0状态为必胜。2:) N2,P0状态为必输。证明:转载原创 2017-04-20 22:54:51 · 583 阅读 · 0 评论 -
ZOJ - 3529 K - A Game Between Alice and Bob sg函数~
sg函数打表。一开始我是这么打的表。天真以为nlogn应该可以。但是跑了很久。。。。void gsg() { memset(sg, 0, sizeof(sg)); sg[0]=0; for (int i = 1; i < 5000024; i++) { memset(Hash, 0, sizeof(Hash)); for (int j = 1; j*j <= i; j++)原创 2017-04-27 21:35:44 · 490 阅读 · 0 评论