stone
首先说明解答正确性存疑(似乎被叉掉了)
存在某堆xi∈[a,b]x_i\in [a,b]xi∈[a,b],先手必胜。
否则设置[a,b][a,b][a,b]区间不可达(谁走到[a,b][a,b][a,b]就输了)构造关于石子个数的SG函数,相当于在必须取某堆石子使其个数∈[a,b]\in[a,b]∈[a,b](必败态)之前的一个SG博弈游戏。
按aaa分类讨论:
- a=1a=1a=1,从b+1b+1b+1开始,SG按0−b0-b0−b不断循环。
- a>1a>1a>1, 设0−(a−1)0-(a-1)0−(a−1)这段SGSGSG函数为0,将位置bbb的SG函数看作1(实际上不可达),那么就是从bbb开始的形如1,0,2,3...1,0,2,3...1,0,2,3...的循环,循环节长度为a+ba+ba+b,其中每个数字都出现aaa次。
sequence
t≤109t\leq 10^9t≤109并没有什么用,因为长度为iii的格子最大只能凑出i+m−1i+m-1i+m−1
n2n^2n2DP,注意期望要倒序DP,枚举i=1−ni=1-ni=1−n,强制后i−1i-1i−1位已经选定:
设f[i][j]f[i][j]f[i][j]表示长度限制为iii,最终(填满)得到的序列第一个格子处为jjj的概率,g[i][j]g[i][j]g[i][j]表示其期望答案,x[i][j]x[i][j]x[i][j]表示长度限制为iii,最后在第一个得到jjj(其它格为空)的概率,u[i][j]u[i][j]u[i][j]表示长度限制为ii