SYZOJ — [机智]毒瘤背包(01背包)
发布日期:2021-07-01 00:18:47
浏览次数:3
分类:技术文章
本文共 744 字,大约阅读时间需要 2 分钟。
题目链接:
内存限制:512 MiB 时间限制:1000 ms题目描述
现在有n个物品,每个物品都有他的编号,从0开始0..n-1。他们都有各自对应的体积v(i)。现在要把这n个物品尝试着放入一个体积为V的容器中,请问最多能放进去的体积之和是多少?
输入格式
第一行2个整数n,V,表示共有n个物品,容器体积为V
第二行n个整数,表示v(0)..v(n-1)
输出格式
一行,一个整数,表示装进去的体积的最大和
样例输入
2 4294967296
2147483648 233
样例输出
2147483881
数据范围与提示
2 <= n <= 20
2^31 <= v(i), V <= 2^40
解题思路
01背包问题,为体积过大,数量较小,可以直接递归求01背包。
Accepted Code:#includeusing namespace std;long long v[25];long long dp(int n, long long m) { if (n < 1) return 0; if (v[n] > m) return dp(n - 1, m); return max(dp(n - 1, m), dp(n - 1, m - v[n]) + v[n]);}int main() { int n; long long m; scanf("%d%lld", &n, &m); for (int i = 1; i <= n; i++) scanf("%lld", &v[i]); printf("%lld\n", dp(n, m)); return 0;}
转载地址:https://lzyws739307453.blog.csdn.net/article/details/91046487 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月09日 00时13分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Flink Operators之Process Function(17)
2019-05-01
Flink 异步I/O访问外部数据(18)
2019-05-01
深入理解python--线程、进程与协程(1)
2019-05-01
Flink中增量聚合函数和全量聚合函数的关系
2019-05-01
HIVE自定义函数--UDF函数(用户自定义函数)详解
2019-05-01
Java中访问控制符的具体用法
2019-05-01
Java包重点总结
2019-05-01
创建线程究竟该用第几种方式
2019-05-01
Java--流重点总结初稿
2019-05-01
Java高级部分流---换个角度思考流
2019-05-01
如何解决电脑ip地址冲突的问题
2019-05-01
Win下如何查看本地计算机的网络端口被哪个应用程序所占用
2019-05-01
TCP/IP、Http、Socket的区别
2019-05-01
Java高级部分容器重点总结下
2019-05-01
Java高级部分流重点总结上
2019-05-01
git使用问题总结
2019-05-01
怎么用kms工具给win7企业版激活
2019-05-01
Linux和windows之间copy文件常用方法
2019-05-01
搭建samba服务器实现Linux磁盘或文件夹映射为 Windows网络磁盘
2019-05-01
近半年的读书总结
2019-05-01