吉哥系列故事——临时工计划
动态规划:dp[i]表示i天为止获得的最大工资。
转移方程:dp[i] = max{dp[i-1], dp[i], dp[ s[j] - 1 ]+ c[j]},其中e[j] = i;
#include#include #include #include using std::memset;using std::vector;using std::sort;const int MAXM = 101;const int MAXN = 1001;vector timeline[MAXM];struct JOB{ int s,e,c;}job[MAXN];int n, m, t, dp[MAXM];bool cmp(JOB a, JOB b){ return a.e < b.e;}int max(int a,int b){ return a = 1) { v1 = max(v1, dp[temp.s - 1] + temp.c); } } dp[i] = max(v1, dp[i]); } int ans = 0; for(int i = 1; i <= m; i++) { ans = max(ans, dp[i]); } printf("%d\n", ans); }}