分组背包原理

简介: 笔记

分组背包


类似多重背包,只是将每件物品选几个变成每组物品选哪一个

9.png



所以优化成一维时需要从大到小枚举j

int n, m;
int f[N];
int v[N][N], w[N][N], s[N];
int main() {
  cin >> n >> m;
  for (int i = 1;i <= n;++i) {
    cin >> s[i];
    for (int j = 0;j < s[i];++j) {
      cin >> v[i][j] >> w[i][j];
    }
  }
  for (int i = 1;i <= n;++i) {
    for (int j = m;j >= 0;--j) {
      for (int k = 0;k < s[i];++k) {
        if (v[i][k] <= j)f[j] = max(f[j], f[j - v[i][k]] + w[i][k]);
      }
    }
  }
目录
相关文章
|
7月前
|
算法 测试技术 C++
【动态规划】【状态压缩】【C++算法】1815 得到新鲜甜甜圈的最多组数
【动态规划】【状态压缩】【C++算法】1815 得到新鲜甜甜圈的最多组数
|
存储 人工智能 算法
【算法分析与设计】动态规划(下)(一)
【算法分析与设计】动态规划(下)
|
7月前
|
Shell 网络安全
【错题集-编程题】mari和shiny(动态规划-多源状态线性 dp)
【错题集-编程题】mari和shiny(动态规划-多源状态线性 dp)
|
7月前
|
存储
【错题集-编程题】合唱团(动态规划 - 线性 dp)
【错题集-编程题】合唱团(动态规划 - 线性 dp)
|
7月前
【错题集-编程题】不相邻取数(动态规划 - 线性 dp)
【错题集-编程题】不相邻取数(动态规划 - 线性 dp)
|
7月前
【编程题-错题集】分割等和子集(动态规划 - 01背包)
【编程题-错题集】分割等和子集(动态规划 - 01背包)
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-190 素因子去重
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-190 素因子去重
40 0
|
存储 算法
【算法分析与设计】动态规划(下)(三)
【算法分析与设计】动态规划(下)
|
消息中间件 人工智能 算法
【算法分析与设计】动态规划(下)(二)
【算法分析与设计】动态规划(下)
|
存储 人工智能 算法
【算法分析与设计】动态规划(上)
【算法分析与设计】动态规划(上)