国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 高雄县| 喀喇| 华蓥市| 巨鹿县| 卓资县| 奉化市| 临安市| 康定县| 邵阳市| 花莲县| 台山市| 南漳县| 嘉黎县| 博客| 扎囊县| 句容市| 高邑县| 全椒县| 崇文区| 张家界市| 乡城县| 尚志市| 友谊县| 伊川县| 永善县| 庄浪县| 沙河市| 汉阴县| 马龙县| 娄底市| 永昌县| 龙南县| 搜索| 桃江县| 灯塔市| 瓮安县| 隆子县| 南宫市| 屏东县| 札达县| 安陆市|