zoj 3578 Matrix

来源:互联网 发布:七天网络教师登录 编辑:程序博客网 时间:2024/06/03 22:08

类型:DP

来源:113 - ZOJ Monthly, February 2012

!!!用每个数据中的hi元素【a[i][2]】记录当第i次操作完成时,以i为最外层区间的最大值

!!!N*M grids 范围为:(0,0)~(n-1,m-1)

// zoj 3578// wa wa ac 160 208#include <iostream>#include <cstdio>using namespace std;#define FOR(i, a, b) for(i = a; i < b; ++i)const int INF = 0x7f7f7f7f;const int MAXN = 1010;int maxh, tmph;int n, m, c;int a[MAXN][5];bool is_jiaocha(int i, int j) {    if(a[i][3] > a[j][3] + a[j][0] || a[j][3] > a[i][3] + a[i][0] || a[i][4] > a[j][4] + a[j][1] || a[j][4] > a[i][4] + a[i][1] )        return false;    return true;}int main() {    int i, j;    while(scanf("%d %d %d", &n, &m, &c) != EOF) {        maxh = 0;        FOR(i, 0, c) {            scanf("%d %d %d %d %d", &a[i][0],&a[i][1], &a[i][2], &a[i][3], &a[i][4]);            --a[i][0], --a[i][1];            tmph = 0;            FOR(j, 0, i)                if(is_jiaocha(i, j))                    tmph = max(tmph, a[j][2]);            a[i][2] += tmph;        }        FOR(i, 0, c)            maxh = max(maxh, a[i][2]);        printf("%d\n", maxh);    }    return 0;}/*3 2 22 1 9 1 11 1 2 2 1*/


原创粉丝点击