LG 2282 [HNOI2003]历史年份

zcmimi at 
查看原题'" class='mdui-btn mdui-btn-raised'>点击加载点击跳转 LG 1415 拆分数列加强版复杂度要求减少我们先来考虑$dp$方式$f_i = max(j)|(num(f[j],j) < num(j+1,i))$我们把填表式换成刷表式现在不考虑$0$:如果$num(f[i],i)<num(i+1,i+1+i-f[i])$那么$f(x) = max(f(x),i+1) (x\in[i+1+i-f[i],n])$否则$f(x) = max(f(x),i+1) (x\in[i+1+i-f[i]+1,n])$(因为长度+1 肯定满足)于是我们可以令开一个……