国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

HDU-2602 Bone Collector(01背包)

2019-11-08 18:33:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
第一種方法
#include<iostream>#include<cstring>#include<algorithm>using namespace std;int dp[1000][1000];//大數(shù)組聲明為全局變量才不會(huì)報(bào)錯(cuò)int main(){	int T;	cin>>T;	while(T--){		int n,w;		cin>>n>>w;		int value[1000],cost[1000];		memset(dp,0,sizeof(dp));		for(int i=1;i<=n;i++) {cin>>value[i];}		for(int i=1;i<=n;i++) {cin>>cost[i];}		for(int i=1;i<=n;i++){//枚舉物品			for(int j=0;j<=w;j++){if(j>=cost[i]) dp[i][j]=max(dp[i-1][j],dp[i-1][j-cost[i]]+value[i]);			    else dp[i][j]=dp[i-1][j];			}		}		cout<<dp[n][w]<<endl;			}	return 0;} dp[i][j]表示把前i件物品中選取若干件物品放入剩余空間為j的背包中所能得到的最大價(jià)值,首先考慮第i件物品放還是不放,如果不放,問(wèn)題變成求解從前i-1件物品中挑選物品放入空間j中獲得的最大值是多少;如果放, 問(wèn)題則變成求出從前i-1件物品中挑選物品放入空間j-cost[i]中獲得的最大值是多少,從而再加上第i件物品的價(jià)值。但是無(wú)論如何,要想求出dp[i]都要先求出dp[i-1],所以主循環(huán)是i遞增到n。因?yàn)楫?dāng)考慮前i件物品時(shí),背包剩余的體積不是固定的(方法的不同造成的),所以第二層循環(huán)要枚舉背包的體積(從0開(kāi)始)。其實(shí)就相當(dāng)于列了一張n*w+1的表,把每一種情況都算了出來(lái)存到dp數(shù)組里
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤翔县| 清水河县| 东乌| 罗定市| 会泽县| 静宁县| 中江县| 洪湖市| 绥中县| 通州市| 贵德县| 松原市| 巴青县| 墨江| 腾冲县| 双流县| 鸡西市| 勃利县| 蒙自县| 望江县| 农安县| 克什克腾旗| 拜城县| 建昌县| 鄂托克旗| 顺昌县| 白朗县| 玉林市| 五莲县| 合肥市| 白水县| 八宿县| 砀山县| 涟源市| 建宁县| 且末县| 阜南县| 阿拉善盟| 平果县| 开江县| 马尔康县|