TB椰程 TypeBuddy 打字搭子

完全背包

CSP-J · 编程模板 · 片段 · cpp · 难度 3/5 · 共 495 字

每件无限选,内层容量正序枚举即可

  • 动态规划
  • 完全背包

前置内容

正文

// 完全背包:每件无限选
// 与 01 背包只差枚举方向
// 内层 j 从小到大即可
// 容量够就反复装同一件
#include <cstdio>
int dp[10005], w[1005], v[1005];
int n, m;
int main() {
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i++)
        scanf("%d%d", &w[i], &v[i]);
    // 正序枚举容量
    for (int i = 1; i <= n; i++)
        for (int j = w[i]; j <= m; j++)
            // 用旧值 = 可重复选
            if (dp[j - w[i]] + v[i] > dp[j])
                dp[j] = dp[j - w[i]]
                    + v[i];
    printf("%d", dp[m]);
    return 0;
}

CSP-J · 编程模板的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK