邂逅明下 HDU - 2897(sg函数打表,巴什博奕)

1.很明显,题目给出一个区间,求一堆的结果 ,所以肯定跟巴什博奕有关,也就是跟n%周期(l+r)有关
2.但有一个很不一样的地方,这里最后取的人是输,如果直接想可能有点难想,还会想错,所以用sg函数打个表看看结果与余数之间的关系

int n, r, l;
/*int fg[1010];
int sg(int x)
{
	if (fg[x] != -1)return fg[x];
	unordered_set st;
	f(i, l, r)
		if (x - i > 0)st.insert(sg(x - i));
	for (int i = 0;;++i)
		if (!st.count(i))return fg[x] = i;
}*/
int main()
{
	
	while (~scanf("%d%d%d",&n,&l,&r))
	{
		int re = n % (l + r);
		if (re >= 1 && re <= l)puts("LOST");
		else puts("WIN");
	}
	return 0;
}

你可能感兴趣的:(博弈论,博弈论)