杭电ACM 2602 Bone Collector背包

hdu 2602 Bone Collector 01背包 背包问题(0-1背包) 例题 hdu 2602 Bone Collector 阅读详情

Bone Collector

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 58027    Accepted Submission(s): 24207


Problem Description
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave …
The bone collector had a big bag with a volume of V ,and along his trip of collecting there are a lot of bones , obviously , different bone has different value and different volume, now given the each bone’s value along his trip , can you calculate out the maximum of the total value the bone collector can get ?

 

Input
The first line contain a integer T , the number of cases.
Followed by T cases , each case three lines , the first line contain two integer N , V, (N <= 1000 , V <= 1000 )representing the number of bones and the volume of his bag. And the second line contain N integers representing the value of each bone. The third line contain N integers representing the volume of each bone.
 

Output
One integer per line representing the maximum of the total value (this number will be less than 2 31).
 

Sample Input
  
1 5 10 1 2 3 4 5 5 4 3 2 1
 

Sample Output
  
14
 

Author
Teddy
 

Source
 

Recommend
lcy   |   We have carefully selected several similar problems for you:   1203  2159  2955  1171  2191 
 

做的第一道01背包题。
题意:骨头收集者!!骨头都有自己的value(价值)和volume(体积),现在给一个一定容积的袋子,问如何装才能装下最大价值的骨头。典型的01背包问题。以下列程序为例,若以二维数组d[1005][1005]来记录01背包表的值的话,动态方程为d[i][j]=max(d[I-1][j],d[I-1][j-b[I]]+a[I])以题目给定例子来画出下面的01背包表:


1

2

3

4

5

6

7

8

9

10

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

1

1

1

1

1

2

0

0

0

2

2

2

2

2

3

3

3

0

0

3

3

3

3

5

5

5

5

4

0

4

4

4

7

7

7

7

10

10

5

5

5

9

9

9

12

12

12

12

14

该表的第一行表示背包的大小j,第一列表示物品的价值a[I],这个表造成的疑问在于,列如为什么d[1][9]不是价值为1的物品加上价值为2的物品,他们的体积相加刚好是9啊!?这是因为在I=1这行,没有轮到价值大于1的物品来排。也就是说,第I行就是价值为1~I的物品去进行装填。按照这个道理,右下角最后一个格子里的就是我们要求的最大值。或许还是没懂,其实自己亲自把表里的值推推就会好些了。

原理懂了之后编程是水到渠成啊!


附上代码:
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int a[1005],b[1005];
int d[1005][1005];
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        memset(d,0,sizeof(d));
        int x,y;
        cin>>x>>y;
        for(int i=1;i<=x;i++)
            cin>>a[i];///价值
        for(int i=1;i<=x;i++)
            cin>>b[i];///所占空间
        for(int i=1;i<=x;i++)///动态规划
        {
            for(int j=0;j<=y;j++)
            {
                if(j>=b[i])
                    d[i][j]=d[i-1][j]>(d[i-1][j-b[i]]+a[i])?d[i-1][j]:(d[i-1][j-b[i]]+a[i]);
                else
                    d[i][j]=d[i-1][j];
            }

        }
        cout<<d[x][y]<<endl;
    }
    return 0;
}

用Unity Wheel Collider做坦克转向?3步实现履带式载具物理效果 本文详细解析了如何利用Unity的Wheel Collider组件实现履带式载具的差速转向物理效果。通过思维转换、场景搭建和核心代码实现三步,将Wheel Collider从模拟轮式车辆转向改造为控制履带扭矩差的系统,并深入探讨了参数调试与真实感提升的方法,帮助开发者打造物理反馈扎实的坦克或特种车辆模拟。 阅读详情

相关推荐

别再只调陀螺仪了!用OpenCV实现基于透视变换的EIS防抖,实测效果媲美手机

本文深入探讨了基于透视变换的EIS电子稳像技术,通过OpenCV实现高阶防抖算法,效果媲美主流手机厂商方案。详细解析了传统旋转平移模型的局限性,并展示了透视变换在复杂场景下的优势,包括数学原理、OpenCV实战代码及性能优化技巧,为视频防抖提供了专业解决方案。

weixin_42613501的博客 453

HDU - 2602 Bone Collector (01背包模板题)

许多年前,在泰迪的家乡有一个人,他被称为“骨头收藏家”。这个人喜欢收集各种各样的骨头,比如狗的,牛的,他也去了坟墓… 收集骨头的人有一个体积为V的大袋子,在他收集的过程中有很多骨头,很明显,不同的骨头有不同的价值,不同的体积,现在给出每根骨头在他的过程中的价值,你能计算出收集骨头的人能得到的最大总价值吗? Input 第一行包含整数T,即案例数。 其次是T例,每例三行,第一行包含两个整数N,V,(N <= 1000,V <= 1000)代表他的骨数和包的体积。第二行包含N个整数,表示

weixin_57202646的博客 1253

工业级24V电源保护电路深度解析:五重防护机制详解

自恢复保险丝(PPTC,Positive Temperature Coefficient)是一种过流保护元件✅可恢复:过流后自动恢复,无需更换⚡响应快:电流超标立即动作🔄多次使用:在额定范围内可反复使用第1层(F1):阻挡过流 → 物理熔断第2层(D3):吸收浪涌 → 能量泄放第3层(Q1):防止反接 → 逻辑阻断第4层(Q2/Q3):抵御过压 → 主动切断第5层(CR):平滑启动 → 时序控制设计哲学:"让每一级保护专注做好一件事"通过这篇文章,我们深入理解了:✅自恢复保险丝。

qq_58068673的博客 3579

HDU 2602 Bone Collector

某某骨头收藏家~~~红果果的01背包问题... 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2602 大致题意: 输入:第一行T,T组数据;第二行N、V,N为接下来输入N个骨头的信息,V为背包的体积;第三行为N个骨头各自的价值;第四行为N个骨头各自的体积。 输出:在不超过背包体积的范围内,背包可以装载骨头的最大的价值...

aibao8061的博客 154

Linux内核同步原语之队列自旋锁(Queued Spin Lock)深度解析

本文深度解析了Linux内核中的队列自旋锁(Queued Spin Lock)机制。通过对比传统自旋锁的瓶颈,详细阐述了队列自旋锁如何利用紧凑的4字节结构、每CPU节点数组和pending位优化,有效解决多核(SMP)系统中的缓存行乒乓和惊群效应,实现公平、高效的锁等待队列,从而显著提升内核在高并发场景下的可扩展性与性能。

weixin_29205061的博客 305

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3145

HDU - 2602 Bone Collector解题报告

背包问题第一道

薛崇祥的博客 1388

【图像超分】论文精读:RepSR: Training Efficient VGG-style Super-Resolution Networks with Structural Re-Paramete

摘要: 本文提出RepSR,一种基于结构重新参数化和批量归一化(BN)的高效VGG式超分辨率网络。针对SR任务中BN易引发伪影的问题,作者通过分析发现训练-测试阶段的不一致性是主因,并提出先使用小批量统计训练、后期切换为总体统计的优化策略。RepSR块设计包含干净的残差路径和带改进BN的扩展-压缩卷积路径,有效平衡了训练非线性与推理效率。实验表明,RepSR在不同模型规模下优于现有重参数化方法,且实际推理速度更快。该工作为SR提供了性能与效率兼优的解决方案,相关代码未开源。 关键词: 超分辨率、结构重参数化

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 305

HDU 2602 Bone Collector(01背包)

Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave …  The bone collecto

不忘初心 452

LAMMPS实例教程—In文件详解

本博文主要介绍专栏 《LAMMPS实例教程—In文件详解》, 针对于 Lammps 可分析的物理过程进行讲解,提供 In 文件以及后处理方法,持续更新。 目前分为8个专题: 1)力学专题、2)传热专题、3)相变专题、4)界面专题、5)吸附专题、6)流动专题、7)物性专题以及8)基础理论专题。

Rockyoung 3万+

74.9008深度刷机原理|高通QPST/Firehose底层刷写协议详解

移动设备刷机与底层维修技术指南 本文为移动设备维修人员和高级玩家提供全面的刷机与底层维修技术指南,涵盖高通、联发科和苹果A系列芯片的主要操作。 主要内容 核心操作:Bootloader解锁、Fastboot刷写、EDL深度修复、iTunes DFU模式恢复和分区表重建 适用场景:系统故障修复、底层损坏恢复、安全限制解除、系统降级和深度硬件维修 关键技术:详细解析刷机协议栈层级、关键分区作用和刷机安全机制 操作步骤: 环境搭建与驱动安装 Bootloader解锁(以小米为例) 高通机型系统刷写 苹果设备DFU

2601_95651806的博客 205

ACM 杭电hdu 2602 Bone Collector(01背包)

Bone Collector Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he w

someday7_toi 1万+

2026最新华为OD机试新系统机考真题- 真题题库目录|全覆盖题库 + 逐点算法考点详解

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 2636

[ACM] hdu 2602 Bone Collector(01背包)

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 25042    Accepted Submission(s): 10147 Problem Description   Many yea

逆风的方向 更适合飞翔 1442

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

HDU - 2602 Bone Collector (01背包)

解析:01背包的模板题 dp

小G的ACM之路 1108

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

hdu2602 Bone Collector (01背包)

本文出自:http://blog.youkuaiyun.com/svitter 题意:典型到不能再典型的01背包。给了我一遍AC的快感。 //============================================================================ // Name : 2602.cpp // Author : vit /

svitter的专栏 3173

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

HDU - 2602 - Bone Collector(01背包)

HDU - 2602 - Bone Collector Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to th...

Steve·Curcy 218

杭电2602(01背包)

Bone Collector(难度:1) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone ...

诗意的栖居 633

杭电2602“Bone Collector”.(DP)

杭电acm一些细节上的思考: 养成这样移个习惯,在定义数组的时候,最好把数组定义在main函数之外。 在实际编程中必须考虑数组的大小。 在函数中能定义多大的数组取决于编译是指定栈空间的大小,对于过大的数组,定义在函数里会照成栈的溢出错误,如果定义在函数外,则是在静态内存去定义,该区域32位系统会给每个进程分配3G的虚拟内存。 杭电2602 Problem Description Ma...

swcainiao的博客 236

杭电ACM-2602 Bone Collector

                                           Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 87013    Accepted Submission(s): 359...

CRblog 2414

HDOJ 2602 Bone Collector 杭电 ACM

01背包的经典题  优化空间复杂度(一维数组)的版本流传甚广 这里也给出原始版本(二维数组) 原始版本 注意要考虑0体积的物品 #include #include using namespace std; int f[1002][1002],N,V,w[1002],v[1002],t,i,j; int main(){ cin>>t; while(t--){

TNajor的博客 528

Bone Collecters——HDU2602(01背包/动态规划)

1.问题 Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave … The bone colle...

这个世界不是如你所想 268

【杭电ACM】2602

01背包 在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2……Wn,与之相对应的价值为P1,P2……Pn。与之相似的问题。下面以杭电2602题为例分析。 Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to coll...

fmx的专栏 1025

(背包问题)杭电2602Bone Collector--动态规划入门

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 45005    Accepted Submission(s): 18733 Problem Description Many year

路漫漫 始于足下 623

HDU2602—Bone Collector(背包问题)

Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grav

Beyond the Sora 561

HDU - 2602 Bone Collector【01背包】

HDU - 2602 Bone Collector 译文 骨骼收集器 时间限制:2000/1000 MS(Java / Others)内存限制:32768/32768 K(Java / Others) 总提交内容:97913接受提交内容:39832 问题描述 许多年前,在泰迪的家乡,有一个人被称为“骨头收藏家”。这个男人喜欢收集各种各样的骨头,比如狗狗,牛,还有他去了坟墓… 骨头收集器有一个大容量...

DanBo_C的博客 338
上一篇: 杭电ACM 1069Monkey and Banana
下一篇: poj1458 最长公共子序列
皮皮蟹01
博客等级 码龄10年 29粉丝 76原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值