Codeforces Round #219 (Div. 1)

来源:互联网 发布:文艺女青年 知乎 编辑:程序博客网 时间:2024/05/21 21:45

A:

排序后对半分贪心小的那一半放到大的那一半。

B:

dp[ i ][ j ][ k ][ l ]表示(i, j)为右下角 (k, l)为左上角的矩形里的good数量

那么dp[ i ][ j ][ k ][ l ] = dp[ i - 1 ][ j ][ k ][ l ] + dp[ i ][ j - 1 ][ k ][l] - dp[ i - 1 ][ j - 1 ][ k ][ l ] + cnt

cnt表示 以(i, j)为右下角的这个矩形里的good数量,计算cnt可以做到O(n)计算,具体见代码


C:

相当裸的单调队列dp,dp[ i ][ j ]表示放第i个鞭炮时在j这个位置的最优值, 单调队列就是处理dp由一段区间转移过来的问题。


3 0