Time
Limit: 3000/1000 MS (Java/Others) Memory Limit:
65535/32768 K (Java/Others)
Total Submission(s):
2684 Accepted Submission(s):
1033
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #define maxn 1005 5 struct Line 6 { 7 int st; 8 int en; 9 int val; 10 int buf; //用来暂存数据 11 }; 12 Line point[maxn]; 13 int cmp(const void *a ,const void *b) 14 { 15 if((*(Line*)a).en==(*(Line*)b).en) 16 return (*(Line*)a).st - (*(Line*)b).st; 17 return (*(Line*)a).en - (*(Line*)b).en ; 18 } 19 20 int main() 21 { 22 int test,m,n,i,cnt,j; 23 scanf("%d",&test); 24 while(test--) 25 { 26 scanf("%d%d",&m,&n); 27 memset(point,0,sizeof(point)); 28 for(cnt=i=0;i<n;i++) 29 { 30 scanf("%d%d%d",&point[cnt].st,&point[cnt].en,&point[cnt].val); 31 point[cnt].buf=0; 32 if(point[cnt].en<=m) //超过假期,就不放入数组啦 33 cnt++; 34 } 35 //利用一次多级排序 36 qsort(point,cnt,sizeof(point[0]),cmp); 37 for( i=0 ; i<cnt ; i++ ) 38 { 39 for( j=i+1 ;j<cnt ;j++ ) 40 { 41 if( point[i].en < point[j].st &&point[j].buf < point[i].val+point[i].buf ) 42 point[j].buf = point[i].val+point[i].buf ; 43 } 44 } 45 int ans=0; 46 for(i=0;i<cnt;i++) 47 { 48 if(ans<point[i].buf+point[i].val) 49 ans=point[i].buf+point[i].val; 50 } 51 printf("%d\n",ans); 52 } 53 return 0; 54 }
HDUOJ----4502吉哥系列故事——临时工计划,布布扣,bubuko.com
原文:http://www.cnblogs.com/gongxijun/p/3604202.html