ybtoj背包问题课堂过关DP例题3宝物筛选
Posted SSL_ZZL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ybtoj背包问题课堂过关DP例题3宝物筛选相关的知识,希望对你有一定的参考价值。
Link
ybtoj 【背包问题课堂过关】【例题3】宝物筛选
题面//因为不知道侵不侵权所以就是题面是私密的,有账号的直接看转送门就可了
题目大意
给你几种物品,每种物品有价值费用和个数。
然后你要在费用不要过 W 的情况下,让你选的物品价值总和尽可能大。
输出这个最大价值。
解题思路
模板多重背包
多重背包 = 很多个01背包qwq
luogu的需要加队列优化,ybtoj的数据水到暴力就能过…
Code
#include <iostream>
#include <cstdio>
using namespace std;
int t, n, w[1100], v[1100], f[11000], m[110000];
int main() {
scanf("%d %d", &n, &t);
for(int i = 1; i <= n; i++)
scanf("%d %d %d", &v[i], &w[i], &m[i]);
for(int i = 1; i <= n; i++)
for(int j = t; j; j--)
for(int k = 1; k <= m[i] && j >= w[i] * k; k++)
f[j] = max(f[j], f[j - w[i] * k] + v[i] * k);
printf("%d", f[t]);
}
以上是关于ybtoj背包问题课堂过关DP例题3宝物筛选的主要内容,如果未能解决你的问题,请参考以下文章
luogu P5020ybtoj背包问题课堂过关DP例题2货币系统 & NOIP2018 提高组货币系统
luogu UVA10559 ybtoj 区间DP课堂过关 例题3消除木块 & 方块消除 Blocks