[DP] [2D2D优化] [二维树状数组] [SCOI2014] 方伯伯的玉米田

题目传送门
这是WC2015教师测试的第三题,原题稍有改动……
先看这道题,貌似不会做……
考虑如果选择区间 [l,r] 进行拔高操作,对 [r+1,n] 的操作可能是需要的且不能是不合法的。
于是考虑DP,记 dpi,j 为前 i 株玉米进行 j 次操作所留下的最多玉米数。可以写出如下转移:

dpi,j=max{dpx,y}+1    (x<i,yj,ax+yai+j)

这就是 O(n2k2) 的了……超时过不去……
那么考虑优化转移,我去(貌似)是2D2D的。因为一直取最大值,我们可以用二维树状数组优化转移。
记最大株高为 A ,那么时间复杂度就是 O(nklog2(A+k)log2k)
Code
那么WC2015那道题怎么改的?
先给出了 p 次操作区间再求值。那么如何对于这 p 次操作进行修改?
差分+树状数组即可。
这样修改就变成 O(plog2n) 的了……
其实改完还有一些坑爹点就不提了(比如 n=106 p=k 或者 k=0 这样就直接做个LIS就好了……)
Code

猜你喜欢

转载自blog.csdn.net/HeRaNO/article/details/74783225
今日推荐