dp动态规划—完全背包问题

问题描述:

    有n种重量和价值分别为wi, vi 的物品。从这些物品中挑选总重量不超过MaxValue的物品,求挑选物品价值总和的最大值。在这里,每种物品可以挑选任意多件。

限制条件:

    1 <= n <= 100 ,    1 <= wi, vi <= 100 ,     1 <= MaxValue <= 10000

输入:

3

3 4

4 5

2 3

7

输出:

10


#include 
#include 
#define MAXN 100
using namespace std;
void solve();	/* 此函数是主函数中递推方法的简化版*/

int n, MaxValue;
int w[MAXN+1], v[MAXN+1];
int dp[MAXN+1][MAXN+1];
int main()
{
	scanf("%d", &n );
	for( int i=0; i=1)个的情况,与在dp[i+1][j-w[i]]的计算中选择k-1个的情况是相同的
   所以,dp[i+1][j]的递推中k>=1部分的计算在dp[i+1][j-w[i]]的计算中完成了 */
void solve()
{
	for( int i=0; i

你可能感兴趣的:(动态规划)