• hdu--1712--分组背包<如果你真的明白了背包..>


    真的是蛮好的一题~

    里面的第二层循环 小变量 i j k分别从哪里开始 哪里结束 逆序 还是 顺序 都要好好地去体会

    我自己讲不来  至于为什么V是逆序 你可以将它当成某种特殊的01背包来看待 就很容易想了

    其实 第3层循环

    1                 for( int k = 1 ; k<=m ; k++ )
    2                 {
    3                     if( j>=k )
    4                     {
    5                         dp[j] = max( dp[j] , dp[j-k]+a[i][k-1] );
    6                     }
    7                 }

    这里的 if( j>=k )因为是K就代表了天数 这是很巧合情况不用开数组  一般的话 要开个vol[ k ]数组

    这边的话 也是有 滚动数组的压缩空间概念在的

    不然的话 是开个二维dp[i][j] i就代表到了第I组物品  J代表前I组所占用的体积 DP数组就代表前I组占用J的体积所能得到的最大价值

    好了 上代码

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 const int size = 110;
     7 int a[size][size];
     8 int dp[size];
     9 
    10 int main()
    11 {
    12     cin.sync_with_stdio(false);
    13     int t , n , m;
    14     while( cin >> n >> m && (n||m) )
    15     {
    16         for( int i = 0 ; i<n ; i++ )
    17         {
    18             for( int j = 0  ; j<m ; j++ )
    19             {
    20                 cin >> a[i][j];
    21             }
    22             //a[i][m] = 0;
    23         }
    24         memset( dp , 0 , sizeof(dp) );
    25         for( int i = 0 ; i<n ; i++ )
    26         {
    27             for( int j = m ; j>=1 ; j-- )
    28             {
    29                 for( int k = 1 ; k<=m ; k++ )
    30                 {
    31                     if( j>=k )
    32                     {
    33                         dp[j] = max( dp[j] , dp[j-k]+a[i][k-1] );
    34                     }
    35                 }
    36             }
    37         }
    38         cout << dp[m] << endl;
    39     }
    40     return 0;
    41 }
    View Code

    today:

      该认真的时候

      认真点

      认真是种情怀

    just follow your heart
  • 相关阅读:
    解决IE新开窗口无法显示内容的问题
    日历控件
    关于索引,我们可以知道的更多 全表扫描和索引扫描
    C#构造函数的小说明
    动态创建的组件的ID设定
    正则表达式使用详解
    “运行”命令全集
    数组型参数
    接口实现的继承机制
    读取XML文件
  • 原文地址:https://www.cnblogs.com/radical/p/4056132.html
Copyright © 2020-2023  润新知