思路:dp[i][j]表示的是前i個物品背包所能容納不超過bagw的大價值.
創新互聯公司服務項目包括陽明網站建設、陽明網站制作、陽明網頁制作以及陽明網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,陽明網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到陽明省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!#include<iostream>
using namespace std;
const int maxn = 100;
int main()
{
int n,bagw;
int w[maxn],v[maxn];
int dp[maxn][maxn];
cin>>n;
for(int i = 0; i < n; i++)
{
cin>>w[i]>>v[i];
}
cin>>bagw;
for(int i = 0; i < n; i++) //初始化第一列(背包重為0時的大價值)
dp[i][0] = 0;
for(int j = 0; j <= bagw; j++) //初始化第一行
{
if(j >= w[0])
dp[0][j] = v[0];
else
dp[0][j] = 0;
}
for(int i = 1; i < n; i++)
{
for(int j = 1; j <= bagw; j++)
{
if(j >= w[i])
{
dp[i][j] = max(dp[i - 1][j],dp[i - 1][j - w[i]] + v[i]); //選與不選取大值
}
else
{
dp[i][j] = dp[i - 1][j];
}
}
}
cout<<dp[n-1][bagw]<<endl;
for(int i = 0; i < n; i++)
{
for(int j =0; j <= bagw; j++)
cout<<dp[i][j]<<" ";
cout<<endl;
}
return 0;
}
網站標題:DP-01背包問題-創新互聯
分享網址:http://m.newbst.com/article24/dcidce.html
成都網站建設公司_創新互聯,為您提供網站建設、微信小程序、網站制作、軟件開發、網站維護、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯