poj 3616 Milking Time

来源:互联网 发布:南京信讯通软件 编辑:程序博客网 时间:2024/06/15 00:49

题目链接:http://poj.org/problem?id=3616

题目大意:。。。

分析:(最大递增子序列)

ac代码

#include<cstdio>#include<algorithm>#define Max 1005using namespace std;int dp[Max];struct milk{int start;int end;int effic;}a[Max];bool cmp(const struct milk &A, const struct milk &B){if(A.start < B.start)return true;else return false;}int max(int x, int y){if(x > y)return x;else return y;}int main(){int N, M, R;scanf("%d %d %d", &N, &M, &R);for(int i = 1; i <= M; i++)scanf("%d %d %d", &a[i].start, &a[i].end, &a[i].effic);for(int i = 1; i <= M; i++)a[i].end = a[i].end + R;N = N + R;sort(a + 1, a + M + 1, cmp);/*for(int i = 1; i <= M; i++)printf("%d %d\n", a[i].start, a[i].end);*/for(int i = 1; i <= M; i++){dp[i] = a[i].effic;for(int j = 1; j < i; j++)if(a[j].end <= a[i].start)dp[i] = max(dp[i], dp[j] + a[i].effic);}int ans = 0;for(int i = 1; i <=M; i++)ans = max(ans, dp[i]);printf("%d\n", ans);return 0;}