【HDOJ】1024 Max Sum Plus Plus
经典DP,但是各种TLE、RE,还是C写的。
#include <stdio.h> #define MAXNUM 1000006 #define INF 0xffffffffffffffff int mymax(int a, int b) { return a>b ? a:b; } int cur[MAXNUM]; int pre[MAXNUM]; int num[MAXNUM]; int main() { int i, j; long long cur_max; int n, m; while (scanf("%d %d", &m, &n) != EOF) { memset(num, 0, sizeof(num)); memset(pre, 0, sizeof(pre)); memset(cur, 0, sizeof(cur)); for (i=1; i<=n; ++i) scanf("%d", &num[i]); for (i=1; i<=m; ++i) { cur_max = INF; for (j=i; j<=n; ++j) { cur[j] = mymax(cur[j-1], pre[j-1])+num[j]; pre[j-1] = cur_max; if (cur[j] > cur_max) cur_max = cur[j]; } } printf("%lld\n", cur_max); } return 0; }
浙公网安备 33010602011771号