1024. 装箱问题

题目描述

给了一个箱子的总体积是V,同时有n件物品,每件的都有一个体积,问怎么去可以让剩余空间最小?

f1-01背包-没有显式给价值

基本分析

  1. 剩余空间最小?占用的体积最大
  2. 01背包的价值是啥?也是v

代码

#include <iostream>
using namespace std;
const int N = 200010;
int f[N];
int m, n;
int main()
{
scanf("%d%d", &m, &n);
for (int i = 1; i <= n; i++)
{
int v;
scanf("%d", &v);
for (int j = m; j >=v; j-- )
f[j] = max(f[j], f[j-v]+v);
}
printf("%d\n", m - f[m]);
return 0;
}

总结

  1. 定义dp状态的时候,N是第二个维度(体积)的上限,不是第一个维度
posted @   zhangk1988  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示