赞
踩
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。
第 i 件物品的体积是 vi,价值是 wi。
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。
输出最大价值。
/* 输入格式 第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。 输出格式 输出一个整数,表示最大价值。 数据范围 0<N,V≤1000 0<vi,wi≤1000 输入样例 4 5 1 2 2 4 3 4 4 5 输出样例: 8 */ #include<iostream> using namespace std; const int N=1000; int n,m; int v[N],w[N]; // 体积 价值 int f[N][N]; // 前 i 件物品,总体积 j 的 最大价值 int main(){ cin>>n>>m; for(int i=0;i<n;i++){ cin>>v[i]>>w[i]; } for(int i=0;i<n;i++){ for(int j=0;j<=m;j++){ f[i][j]=f[i-1][j]; if(v[i]<=j&&f[i-1][j-v[i]]+w[i]>f[i][j]){ f[i][j]=f[i-1][j-v[i]]+w[i]; } } } cout<<f[n-1][m]<<endl; return 0; }
有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。
i\j | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 1 | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ |
1 | 0 | 1 | ∞ | 1 | 2 | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ |
2 | 0 | 1 | ∞ | 1 | 2 | ∞ | 2 | 3 | ∞ | ∞ | ∞ |
3 | 0 | 1 | ∞ | 1 | 2 | ∞ | 2 | 3 | ∞ | 3 | 4 |
4 | 0 | 1 | ∞ | 1 | 1 | 2 | 2 | 3 | 3 | 3 | 3 |
/* 链接:https://www.nowcoder.com/questionTerminal/83800ae3292b4256b7349ded5f178dd1 来源:牛客网 输入描述: 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。 输出描述: 对于每组数据,能够凑成总值M的最少邮票张数。若无解,输出0。 示例1 输入 10 5 1 3 3 3 4 输出 3 */ #include <iostream> #include <algorithm> using namespace std; int pri[20]; //邮票面值 int num[20][100]; //邮票数量 i:第i个邮票 j:当前邮票总值 int main(){ int m,n; while(cin>>m){ cin>>n; for(int i=0;i<n;i++)cin>>pri[i]; for(int j=0;j<=m;j++) if(j==pri[0]) num[0][j]=1; else num[0][j]=99999999; num[0][0]=0; // for(int i=0;i<=n;i++){ // for(int j=0;j<=m;j++){ // cout<<num[i][j]<<" "; // } // cout<<endl; // } for(int i=1;i<n;i++){ for(int j=1;j<=m;j++){ num[i][j]=num[i-1][j]; if(pri[i]<=j&&num[i][j]>num[i-1][j-pri[i]]+1){ num[i][j]=num[i-1][j-pri[i]]+1; } } } // for(int i=0;i<n;i++){ // for(int j=0;j<=m;j++){ // cout<<num[i][j]<<" "; // } // cout<<endl; // } if(num[n-1][m]==99999999)cout<<0<<endl; else cout<<num[n-1][m]; } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。