标签:style blog http color os strong io for
acm1881毕业bg
将必须离开的时间限制看作背包容量,先将他们由小到大排序,然后在排完序的数组中对每个实例都从它的时间限制开始(背包容量)到它的延长时间进行遍历;
1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 using namespace std; 5 struct BG 6 { 7 int h,t,l; 8 friend bool operator<(BG a,BG b) 9 { 10 return a.l<b.l; 11 } 12 }; 13 BG *bg; 14 int main() 15 { 16 int n,m; 17 int value[3500]; 18 while(cin>>n&&n>=0) 19 { 20 m=0; 21 if(n==0) 22 { 23 cout<<0<<endl; 24 continue; 25 } 26 bg=new BG[n]; 27 memset(value,0,sizeof(value)); 28 for(int i=0;i<n;i++) 29 { 30 cin>>bg[i].h>>bg[i].t>>bg[i].l; 31 m=(bg[i].l>m)?bg[i].l:m; 32 } 33 sort(bg,bg+n); 34 for(int i=0;i<n;i++) 35 { 36 for(int j=bg[i].l;j>=bg[i].t;j--) 37 { 38 value[j]=max(value[j],value[j-bg[i].t]+bg[i].h); 39 } 40 } 41 int ans=0; 42 for(int i=0;i<=m;i++) 43 { 44 if(value[i]>ans)ans=value[i]; 45 } 46 cout<<ans<<endl; 47 } 48 return 0; 49 }
ACM1881 01背包问题应用,布布扣,bubuko.com
标签:style blog http color os strong io for
原文地址:http://www.cnblogs.com/sytu/p/3871549.html