A4784 | 异格背包问题
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
考虑一个异格(不一样)的背包问题:背包变成 $N \times M$ ($N$ 行 $M$ 列)的矩阵。你希望在其中合理放置物品,以获得最大的价值和。
需要注意的是,物品的大小只可能为 $1\times 2$ 或者 $1\times 3$ ,并且在放置物品的时候,物品都可以做九十度的旋转。
需要注意的是,物品的大小只可能为 $1\times 2$ 或者 $1\times 3$ ,并且在放置物品的时候,物品都可以做九十度的旋转。
输入格式
第一行一个整数 $T$ 代表该测试点的数据组数。
对于每组数据,第一行有四个整数 $N,M,n_1,n_2$ ,其中 $n_1,n_2$ 分别代表大小为 $1\times 2$ 和大小为 $1\times 3$ 的物品个数。
接下来一行有 $n_1$ 个数代表每个 $1\times 2$ 物品的价值。
接下来一行有 $n_2$ 个数代表每个 $1\times 3$ 物品的价值。
对于每组数据,第一行有四个整数 $N,M,n_1,n_2$ ,其中 $n_1,n_2$ 分别代表大小为 $1\times 2$ 和大小为 $1\times 3$ 的物品个数。
接下来一行有 $n_1$ 个数代表每个 $1\times 2$ 物品的价值。
接下来一行有 $n_2$ 个数代表每个 $1\times 3$ 物品的价值。
输出格式
对于每组询问,输出能够达到的价值最大值。
输入输出样例
输入 #1
1 2 3 2 2 1 2 1 2
输出 #1
4
Note
在第一行放入价值为 $2$ 的 $1\times 2$ 物品
在第二行放入价值为 $2$ 的 $1\times 3$ 物品
总价值为 $4$ ,物品均不旋转。
对于 $20\%$ 的数据,$N,M\leq 10,n_1,n_2\leq 100$ 。
对于 $70\%$ 的数据,$N,M\leq 100,n_1,n_2\leq 2000$ 。
对于 $100\%$ 的数据,$1\leq T\leq 10,1\leq N,M\leq 500,0\leq n_1,n_2\leq 10000$ ,对于所有物品的价值v $1\le v\le 10^3$。
在第一行放入价值为 $2$ 的 $1\times 2$ 物品
在第二行放入价值为 $2$ 的 $1\times 3$ 物品
总价值为 $4$ ,物品均不旋转。
数据规模与约定
对于 $20\%$ 的数据,$N,M\leq 10,n_1,n_2\leq 100$ 。
对于 $70\%$ 的数据,$N,M\leq 100,n_1,n_2\leq 2000$ 。
对于 $100\%$ 的数据,$1\leq T\leq 10,1\leq N,M\leq 500,0\leq n_1,n_2\leq 10000$ ,对于所有物品的价值v $1\le v\le 10^3$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?