问题描述
  有一个箱子容量为V(正整数,<=V<=),同时有n个物品(<n<=),每个物品有一个体积(正整数)。
  要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入格式
  第一行为一个整数,表示箱子容量;
  第二行为一个整数,表示有n个物品;
  接下来n行,每行一个整数表示这n个物品的各自体积。
输出格式
  一个整数,表示箱子剩余空间。
  样例输入
  
  
  
  
  
  
  
  
样例输出

记:

一开始使用的思路有点像dfs,不符合动态规划的思想

故上网查阅他人的代码

(代码参考:https://blog.csdn.net/s2637281620/article/details/63251166)

学习到了滚动数组的使用,拓展了动态规划的解题思路

AC代码:

 #include <stdio.h>
#define LEN 20000 int v,n;
int use[LEN+] = {};
int ans[LEN+] = {}; void init()
{
int i;
scanf("%d",&v);
scanf("%d",&n);
for (i = ; i <= n ; i ++)
{
scanf("%d",&use[i]);
}
return ;
} void dp()
{
int i,j;
for (i = ; i <= n ; i ++)/*遍历物品的体积*/
{
/*
在允许范围内,
将当前物品加入到箱子中,
若加入后的体积大于原值,则加入物品,并更新值
*/
for (j = v ; j >= use[i] ; j --)
{
if (ans[j-use[i]] + use[i] > ans[j])
{
ans[j] = ans[j-use[i]] + use[i];
}
}
}
return ;
} int main(void)
{
init();
dp();
printf("%d",v-ans[v]);
return ;
}

最新文章

  1. vijos1741 观光公交 (贪心)
  2. 【转】DNS记录类型介绍(A记录、MX记录、NS记录等)
  3. 探索javascript----获得节点计算后样式
  4. DEV主从表
  5. Maven使用笔记(四)pom.xml配置详解
  6. 使用NPOI将数据库里信息导出Excel表格并提示用户下载
  7. ios富文本的简单使用 AttributedString
  8. java学习笔记之字符流文件复制
  9. python 编码规范整理
  10. C语言 &#183; 8皇后问题
  11. PCB (4)原理图导入PCB
  12. 广商博客沖刺第一天(new ver):
  13. 微软BI 之SSIS 系列 - 理解Data Flow Task 中的同步与异步, 阻塞,半阻塞和全阻塞以及Buffer 缓存概念
  14. 虚拟机中安装linux系统步骤
  15. spring p 标签
  16. 基本控件文档-UIKit结构图
  17. Unix IPC之Posix信号量实现生产者消费者
  18. 【常见CPU架构对比】维基百科
  19. Linux的磁盘分区(一)
  20. 九度OJ 1031:xxx定律 (基础题)

热门文章

  1. paddle——docker实践
  2. Linux命令学习之路——变更工作目录:cd
  3. Unity镜子效果的实现(无需镜子Shader)
  4. Sublime Text3:插件+快捷键+环境变量设置+C/C++编译环境
  5. CentOS7为firewalld添加开放端口及相关操作
  6. HDU 2206
  7. music cube
  8. Bow and Arrow Rigging in Blender
  9. Java 枚举(enum) 详解4种常见的用法
  10. Go Example--变参函数