LOJ P2612 [NOIP2013] 花匠【动态规划】

这道题 L O J 上加强了数据范围然呢并没有什么用。

D P [ I ] [ 0 ] 表示前 I 株可以留下的最大的株数,其中 J < I , H [ J ] > H [ I ] ;
D P [ I ] [ 1 ] 表示前 I 株可以留下的最大的株数,其中 J < I , H [ J ] < H [ I ]

转移的话算一下拐点就好。

关键代码:

int main(){
    ...
    for(I=1;I<=N;I++) {
        for(J=I-1;J>=1;J--){
            if(A[J]>A[I]){
                DP(I,0)=max(DP(J,1)+1,DP(I,0));
            }
            if(A[J]<A[I]){
                DP(I,1)=max(DP(J,0)+1,DP(I,1));
            }
            if(DP(I,0)!=1&&DP(I,1)!=1){
                break;
            }
        }
    }
    ...
}

猜你喜欢

转载自blog.csdn.net/yanzhenhuai/article/details/81070690