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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

背包九讲之五(二维费用的背包问题)

發(fā)布時(shí)間:2025/7/25 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 背包九讲之五(二维费用的背包问题) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://acm.fafu.edu.cn/problem.php?id=1499

1 /* 2 二維費(fèi)用的背包問(wèn)題是指:對(duì)于每件物品,具有兩種不同的費(fèi)用, 3 選擇這件物品就必須付出這兩種代價(jià),每種代價(jià)都有可付出的最大值(背包容量) 4 問(wèn)怎么選擇物品才能得到最大價(jià)值.費(fèi)用增加了一維,那么只需要狀態(tài)增加一維就可以了、 5 dp[i][j][k] 前i件物品付出兩種代價(jià)為j和k的最大價(jià)值 6 dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j-a[i]][k-b[i]]); 7 根據(jù)背包的思想,可將狀態(tài)壓縮為二維的. 8 只不過(guò)是費(fèi)用增加了一維,所以01背包,完全背包,多重完全背包的思想完全 9 可以用在這里 10 */ 11 #include <stdio.h> 12 #include <string.h> 13 int t[111],v[111],g[111]; 14 int dp[1111][111]; 15 int T,V,N; 16 inline int max(const int &a, const int &b) 17 { 18 return a < b ? b : a; 19 } 20 void zeroOnePack(int t,int v, int g) 21 { 22 int i,j; 23 for(i=T; i>=t; --i) 24 for(j=V; j>=v; --j) 25 dp[i][j] = max(dp[i][j],dp[i-t][j-v]+g); 26 } 27 int main() 28 { 29 int i; 30 while(scanf("%d%d%d",&T,&V,&N)!=EOF) 31 { 32 memset(dp,0,sizeof(dp)); 33 for(i=1; i<=N; ++i) 34 scanf("%d%d%d",&g[i],&t[i],&v[i]); 35 for(i=1; i<=N; ++i) 36 zeroOnePack(t[i],v[i],g[i]); 37 printf("%d\n",dp[T][V]); 38 } 39 40 return 0; 41 }

?但是更多的時(shí)候是隱式地給出條件,比如n個(gè)物品最多取m個(gè),那么第二維的費(fèi)用便是個(gè)數(shù)。

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

總結(jié)

以上是生活随笔為你收集整理的背包九讲之五(二维费用的背包问题)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。