删除数字

xiaoxiao2021-02-28  29

这题也有很明显的线性关系,要求一串数字单调不递减 我们只需知道前面的那个数是否比自己大就好

在预处理每个数的组成方案后,后面的就是线性dp了 枚举前一个数的方案,与后面一个数的方案 由于前面一个数的组成方案已经求出来了,可以使用前缀和+二分把这一维优化成logn 最后复杂度为 n2logn


FOR(i,1,m) { FOR(j,1,Way[i]) { int now=upper_bound(Sum[i-1]+1,Sum[i-1]+Way[i-1]+1,Sum[i][j])-Sum[i-1]-1; dp[i][j]=dp[i-1][now]; } FOR(j,1,Way[i]) { dp[i][j]+=dp[i][j-1]; if(dp[i][j]>=Mod)dp[i][j]-=Mod; } }
转载请注明原文地址: https://www.6miu.com/read-1000117.html

最新回复(0)