ACM1881 01背包问题应用
生活随笔
收集整理的這篇文章主要介紹了
ACM1881 01背包问题应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
01背包問題動態規劃應用
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 }
?
轉載于:https://www.cnblogs.com/sytu/p/3871549.html
總結
以上是生活随笔為你收集整理的ACM1881 01背包问题应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关杯仙的古装剧的名字是?这部有关杯仙的
- 下一篇: 7月份没啥写的。。。