hdu 4502

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4502

dp[i]表示前i天的最大收入。

View Code
 1 #include<iostream>

 2 #include<algorithm>

 3 #include<cstring>

 4 const int N=110;

 5 using namespace std;

 6 int dp[N];//dp[i]表示前i天的最大收入

 7 

 8 struct Node{

 9     int start,end;

10     int value;

11 }node[N*10];

12 

13 int cmp(const Node &a,const Node &b){

14     return a.end<b.end;

15 }

16 

17 int main(){

18     int _case;

19     scanf("%d",&_case);

20     while(_case--){

21         int m,n;

22         scanf("%d%d",&m,&n);

23         for(int i=0;i<n;i++){

24             scanf("%d%d%d",&node[i].start,&node[i].end,&node[i].value);

25         }

26         memset(dp,0,sizeof(dp));

27         sort(node,node+n,cmp);

28         for(int i=1;i<=m;i++){

29             for(int j=0;j<n;j++){

30                 if(node[j].end>i)break;

31                 dp[i]=max(dp[i],dp[node[j].start-1]+node[j].value);

32             }

33         }

34         printf("%d\n",dp[m]);

35     }

36     return 0;

37 }

 

你可能感兴趣的:(HDU)