stone
首先说明解答正确性存疑(似乎被叉掉了)
存在某堆 x i ∈ [ 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博弈游戏。
按 a a a分类讨论:
- a = 1 a=1 a=1,从 b + 1 b+1 b+1开始,SG按 0 − b 0-b 0−b不断循环。
- a > 1 a>1 a>1, 设 0 − ( a − 1 ) 0-(a-1) 0−(a−1)这段 S G SG SG函数为0,将位置 b b b的SG函数看作1(实际上不可达),那么就是从 b b b开始的形如 1 , 0 , 2 , 3... 1,0,2,3... 1,0,2,3...的循环,循环节长度为 a + b a+b a+b,其中每个数字都出现 a a a次。
sequence
t ≤ 1 0 9 t\leq 10^9 t≤109并没有什么用,因为长度为 i i i的格子最大只能凑出 i + m − 1 i+m-1 i+m−1
n 2 n^2 n2DP,注意期望要倒序DP,枚举 i = 1 − n i=1-n i=1−n,强制后 i − 1 i-1 i−1位已经选定:
设 f [ i ] [ j ] f[i][j] f[i][j]表示长度限制为 i i