zoukankan      html  css  js  c++  java
  • 背包问题之完全背包

    完全背包:

    有n种物品,每种物品有无限个,每个物品的重量为w[i],价值为v[i]。现在有一个背包,它所能容纳的重量为C,问:你的背包所能带走的最大价值是多少?

    之前01背包分析过了,如果是顺序的话,就表示同一物品可以多次放入!这就是完全背包!就是这么神奇!

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int w[105], val[105];
     6 int dp[1005];
     7 
     8 int main()
     9 {
    10     int t, m, res=-1;
    11     cin >> t >> m;
    12     for(int i=1; i<=m; i++)
    13     {
    14         cin >> w[i] >> val[i];
    15     }
    16     for(int i=1; i<=m; i++) //物品 
    17     {
    18         for(int j=0; j<=t; j++) //容量 
    19         {
    20             if(j >= w[i])
    21                 dp[j] = max(dp[j-w[i]]+val[i], dp[j]);
    22             
    23         }
    24         for(int k=1; k<=t; k++)
    25                 cout << dp[k] << " ";
    26             cout << endl;
    27     }
    28         
    29     cout << dp[t] << endl;
    30     return 0;
    31 }
  • 相关阅读:
    Redis数据类型
    Linux配置Redis
    Linux配置ActiveMQ
    Linux配置Docker
    3、Spring Boot日志
    2、Spring Boot配置
    1. Spring Boot入门
    Linux(centos6.8)配置Redis
    okhttp禁止重定向
    123
  • 原文地址:https://www.cnblogs.com/dominjune/p/4402017.html
Copyright © 2011-2022 走看看