日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當(dāng)前位置: 首頁 >

ACM1881 01背包问题应用

發(fā)布時間:2023/11/27 34 豆豆
默认站点 收集整理的這篇文章主要介紹了 ACM1881 01背包问题应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

01背包問題動態(tài)規(guī)劃應(yīng)用

acm1881畢業(yè)bg

將必須離開的時間限制看作背包容量,先將他們由小到大排序,然后在排完序的數(shù)組中對每個實例都從它的時間限制開始(背包容量)到它的延長時間進(jìn)行遍歷;

 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 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/sytu/p/3871549.html

總結(jié)

以上是默认站点為你收集整理的ACM1881 01背包问题应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網(wǎng)站內(nèi)容還不錯,歡迎將默认站点推薦給好友。