在写前面两篇文章23和24的时候自己有很多细节搞得不是很明白,这篇文章把Fork和Work-Stealing相关的源代码重新梳理一下。首先来看一些线程池定义的成员变量:关于scanGuard:volatile int scanGuard;private static final int SG_UNI...
分类:
编程语言 时间:
2014-09-17 18:17:22
阅读次数:
296
题目地址:HDU 3032
这题是很好用来练习sg函数打表的一题。
下面是sg函数值打表代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define LL long l...
分类:
其他好文 时间:
2014-09-16 22:10:01
阅读次数:
244
题目地址:HDU 2897
本来这题可以用NP状态转换,但是数据太大,所以可以通过打表sg函数值,来找出规律。感觉sg函数打表就是利用的NP状态转换的那两条规则。
通过打表可以发现,从1开始,连续p个0,然后接着连续q个正整数,然后再连续p个0,接着连续q个正整数,就这样循环下去。所以规律就很明显了。
代码如下:
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-09-16 20:39:51
阅读次数:
196
题目链接题意:给定一个有向无环图(DAG),上面放有一些旗子,旗子可以重合,两个人轮流操作,每次可以把一个旗子从一个位置移动到相邻的位置,无法移动时输,询问先手是否必胜。这道题可以把每个旗子看作单独的一个游戏,那么所有这些旗子的状态SG值,就是这些旗子各自SG值的Xor和,可以记忆化搜索dfs,暴力...
分类:
其他好文 时间:
2014-09-08 00:56:26
阅读次数:
675
题目链接题意介绍了一遍Nim取石子游戏,可以看上一篇文章详细介绍。问当前状态的必胜走法个数,也就是走到必败状态的方法数。我们设sg为所有个数的Xor值。首先如果sg==0,它不可能有必胜走法,输出0.对于任意一堆有a[i]个石子,若sg Xor a[i] #include#include#inclu...
分类:
其他好文 时间:
2014-09-08 00:55:16
阅读次数:
271
阅读了《由感性认识到理性认识——透析一类搏弈游戏的解答过程》、《解析一类组合游戏》、《组合游戏略述——浅谈SG游戏的若干拓展及变形》这三篇论文,对组合游戏以及SG函数有了更深的理解。这篇文章摘下了这三篇论文的部分重要内容,以及部分我对组合游戏的理解。一些名词与约定:游戏:这里的游戏指的并不是平时.....
分类:
其他好文 时间:
2014-09-08 00:55:06
阅读次数:
228
这题 出的很好的...将nim和bash这2个经典的博弈策略结合在了一起简要说下 上面这2个博弈适用的条件bash:只有一堆物品个数为n 两个人轮流从这堆物品中提取 规定每次至少取一个 最多取m个 谁取完最后一次 就算谁获胜nim:有三堆物品 两个人轮流从任意一堆中取任意数量的物品 最少一个 谁取完...
分类:
其他好文 时间:
2014-09-06 13:38:13
阅读次数:
208
两种方法:
1.dfs求法
int mex(int n)
{
if(sg[n]!=-1) return sg[n];
int temp;
bool vis[N];
memset(vis,false,sizeof(vis));
for(int i=0;i=arr[i];i++)
{
temp=n-arr[i];
s...
分类:
其他好文 时间:
2014-09-05 22:29:22
阅读次数:
208
典型的博弈题目题意: 两个人从1~n中轮流取数,每次取到x时,则x的任意整数幂均不能再被取,最后谁取不了就输。题解: 可以发现,对于该博弈游戏的子游戏是x的1~k次幂,进行上述规则下的博弈。 而子游戏的SG值只与个数有关,与x的值无关。而k最大只有30,故可以打表。 而游戏最终结果即所有子游...
分类:
其他好文 时间:
2014-09-01 22:39:23
阅读次数:
266
博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多。(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候。)Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的...
分类:
其他好文 时间:
2014-08-31 18:36:31
阅读次数:
198