题意
做法
按数字的大小从小到大考虑该数填的位置
假如我们现在考虑数(x),(x)可以放在序列的末尾;若([x-m,x))有数填过了,也可以放在其的前面,则将其的状态状压下来
令(f_{i,j,k})表示当前的数是(i),序列中已经放了(j)个数,([i−m,i))的状态为(k)时的答案
设(S=2^m-1)
[egin{aligned}
&不放:f_{i,j,k}
ightarrow f_{i+1,j,k<<1&S}\
&放:(operatorname{bit}k+1)f_{i,j,k}
ightarrow f_{i+1,j+1,k<<1&S|1}\
end{aligned}]
把后两维压到一维,然后矩阵快速幂