杭电-2639Bone Collector II

Android 13 Hotseat定制化修改——001 hotseat布局方向 一.背景由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher... 阅读详情

Bone Collector II

Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3208    Accepted Submission(s): 1663


Problem Description
The title of this problem is familiar,isn't it?yeah,if you had took part in the "Rookie Cup" competition,you must have seem this title.If you haven't seen it before,it doesn't matter,I will give you a link:

Here is the link: http://acm.hdu.edu.cn/showproblem.php?pid=2602

Today we are not desiring the maximum value of bones,but the K-th maximum value of the bones.NOTICE that,we considerate two ways that get the same value of bones are the same.That means,it will be a strictly decreasing sequence from the 1st maximum , 2nd maximum .. to the K-th maximum.

If the total number of different values is less than K,just ouput 0.
 

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, K(N <= 100 , V <= 1000 , K <= 30)representing the number of bones and the volume of his bag and the K we need. 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 K-th maximum of the total value (this number will be less than 2 31).
 

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

Sample Output
  
12 2 0
 

01背包的变形体,这次不是让背包的容量最大了,是要求出给定的第K大

我不是很理解,大概意思就是说,把每一种容量的背包的前K种方法都写出来!


下面是我借鉴的别人的解释:



题意:给出一行价值,一行体积,让你在v体积的范围内找出第k大的值.......(注意,不要 和它的第一题混起来,它第一行是价值,再是体积)

思路:首先dp[i][j]代表的是在体积为i的时候第j优解为dp[i][j]......那么,我们就可以这样思考,i对应体积,那么如果只是一维的dp[i],代表的应该是体积为i时的最大值,那么同理,dp[i][1]代表的是体积为i时的最大值,那么我们就可以退出两种动态,dp[i][m],dp[i-s[i][0]][m]+s[i][1].....然后把这两种状态开个两个数组分别保存起来,再合并出体积为i时的前k优解......依次后推,直到dp[v][k].......


下面代码:




#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int f[1010][33];
int main()
{
	int N,i,j,v,n,k,val[110],vol[110];
	scanf("%d",&N);
	while(N--)
	{
		scanf("%d%d%d",&n,&v,&k);
		for(i=0;i<n;i++)
		scanf("%d",&val[i]);
		for(i=0;i<n;i++)
		scanf("%d",&vol[i]);
		
		memset(f,0,sizeof(f));
		
		int a[50],b[50],kk;
		for(i=0;i<n;i++)
			for(j=v;j>=vol[i];j--)
			{
				for(kk=0;kk<k;kk++)
				{
					a[kk]=f[j-vol[i]][kk]+val[i];
					b[kk]=f[j][kk];
				}
				a[k]=b[k]=-1;
				int x=0,y=0,z=0;
				while(z<k&&(a[x]!=-1||b[y]!=-1))
				{
					if(a[x]>b[y])
						f[j][z]=a[x++];
					else 
						f[j][z]=b[y++];
					if(f[j][z]!=f[j][z-1])
						z++;
				}
			}
			printf("%d\n",f[v][k-1]);
	}
	return 0;
}



LeRobot 机器人学习(Robot Learning)教程(二)经典机器人学 本文探讨了机器人学中基于学习的方法与传统动力学方法的对比与发展趋势。文章指出,传统方法依赖精确的动力学模型和大量人工调参,面临跨任务泛化能力弱、工程复杂度高、物理建模局限性等问题。随着机器学习技术的进步和机器人数据集的丰富,基于学习的方法展现出三大优势:(1)能够实现跨任务与实体的泛化;(2)降低对人类专业知识的依赖;(3)利用历史数据优化性能。文中以平面机械臂为例,分析了传统逆运动学方法的计算复杂性和环境适应性挑战,并指出基于学习的方案在处理高维感知输入、复杂接触动力学等方面具有明显优势。文章认为,结合物 阅读详情

相关推荐

GPIB通讯的代码怎么写

GPIB(General Purpose Interface Bus)是一种用于连接计算机和测试设备的接口标准。 在写 GPIB 通讯的代码时,首先需要在计算机上安装 GPIB 驱动程序。然后,使用相应的编程语言和 GPIB 库函数来操作 GPIB 设备。 下面是一个使用 Python 语言和 pyvisa 库来实现 GPIB 通讯的示例代码: import visa# 创建 Visa 资源管理器...

weixin_35752645的博客 1545

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 collector had a big bag with a volume of V ,and along his trip of

m0_58245389的博客 472

本地Qwen + ComfyUI 制作AI漫剧完整保姆级教程(2026年3月最新版)

本文介绍了一个零成本、本地化AI漫剧制作方案,整合Qwen大模型和ComfyUI工作流。Qwen负责剧本创作、分镜设计和提示词生成,ComfyUI处理图像生成、角色一致性保持和动态视频制作。该方案支持8GB显存设备运行(推荐12GB),包含详细安装指南和完整制作流程:从Ollama安装Qwen模型,到ComfyUI配置及必备节点安装,再到分镜生成、角色固定、批量出图和视频合成。文章还提供了常见问题解决方案和优化技巧,全流程1-2小时即可完成3分钟竖屏漫剧制作,适合新手和日更创作者。

posstos的博客 5540

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 collector had a big bag with a volume of V ,and along his trip of

Fau的博客 1406

STM32 Proteu直流电机正反转控制系统限位开关-0035

硬件组成:STM32F103C6单片机 +L298N电机控制电路+直流电机+3个按键(正转、反转、停止)+LED指示灯(正转、反转、停止)+限位开关(正限位 反限位) 1.通过3个按键(正转、反转、停止)控制电机的正转、反转、停止。 2.有3个LED指示灯,正转时正转指示灯亮。反转停止对应反转停止指示灯亮。 3.有自动正转反转停止功能,正转时当正限位按键按下时说明正转到最大距离。此时自动停止。反转一样。

zhaxiaobian_er的博客 2002

告别双系统!用Ventoy把Ubuntu 22.04装进U盘,打造你的随身开发环境(附保姆级避坑指南)

本文详细介绍了如何使用Ventoy将Ubuntu 22.04安装到U盘,打造便携式开发环境。通过即插即用的特性,开发者可以在任何x86电脑上快速启动完整的Ubuntu系统,无需配置双系统或虚拟机。文章提供了从硬件准备到系统优化的全流程指南,帮助用户高效创建随身开发环境。

weixin_31569671的博客 364

HDU 2639 - Bone Collector II (第K优解)

Bone Collector II 题目链接:HDU 2639 Bone Collector II 本题要求的是第K优解,我们在01背包中,每次求得的是当前下的最优解,也就是说max()每次都取了最好的那个解,这里要求的是第K优解,我们改变一下max这里的求解过程,改为求K个解,从最优解一直到第K优解。用a[l]表示在背包容量为l的情况下,当前物品i(前i件物品)不放进背包,背包的价值。用b[l]表示在背包容量为l的情况下,当前物品i(前i件物品)放进背包,背包的价值。在当前物品的情况下,总共有2.

热爱编程,热爱技术 312

最强AI插件Augment,适配idea、vscode,对标cursor!

Augment是一款新兴的AI辅助编码工具,能够无缝集成到IDEA和VS Code等主流IDE中,直接对标专业AI编码工具Cursor。其核心优势包括多IDE适配、无缝集成、代码理解与生成以及对话式编程体验。Augment通过插件形式保留原IDE功能和快捷键习惯,降低学习成本,同时提供深度理解项目上下文和生成高质量代码的能力。此外,Augment还具备审查变更、检查点、代理与代理自动等核心功能,支持从简单配置更改到复杂功能实现的各种开发任务。Augment代表了AI辅助编程工具的新方向,通过增强开发者熟悉的

todoitbo的博客 1万+

Bone Collector(骨头收集器) ---01背包 记录

问题描述 多年前,在泰迪的家乡,有一个人叫“骨头收藏家”。这个人喜欢收集各种各样的骨头,狗的,牛的,他也去坟墓了…… 收集骨头的人有一个V体积的大袋子,在他收集的过程中,骨头有很多,显然,不同的骨头有不同的价值和不同的体积,现在给定每根骨头在旅途中的价值,你能计算出骨头收集器能得到的总价值的最大值吗? 输入 第一行包含一个整数 T ,即案例数。 后面是T个case,每个case三行,第一行包含两个整数N,V,(N <= 1000 , V <= 1000 )代表骨头的数量和他包的体积。第二行包含

Hundreds_N的博客 1124

dht11在oled上显示温度 stm32l432kc,如何实现?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1200

安装keil软件时安装不了芯片包怎么回事?芯片包安装路径放在Keill里的packs下面,弹框提示报错:Errors retumned from cpackget...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2207

Bone Collector II(DP+第K优解)

Bone Collector II HDU - 2639 The title of this problem is familiar,isn't it?yeah,if you had took part in the "Rookie Cup" competition,you must have seem this title.If you haven't seen it before,i...

weixin_30580943的博客 104

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

杭电2639 Bone Collector II(01背包第K优解)

Bone Collector II Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2287    Accepted Submission(s): 1198 Problem Description The title of

听自己心跳的声音 1126

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

杭电 2639 Bone Collector II【01背包第k优解】

解题思路:对于01背包的状态转移方程式f[v]=max(f[v],f[v-c[i]+w[i]]);其实01背包记录了每一个装法的背包值,但是在01背包中我们通常求的是最优解, 即为取的是f[v],f[v-c[i]]+w[i]中的最大值,但是现在要求第k大的值,我们就分别用两个数组保留f[v]的前k个值,f[v-c[i]]+w[i]的前k个值,再将这两个数组合并,取第k名。 即f的数组会增加一维...

weixin_30364147的博客 106

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【杭电oj】2639 - Bone Collector II(Kth-ZeroOnePack)

题目 题意求出Kth大的背包价值,不同组成但价值相同的背包视为同一种。 经典问题,一个比较详细的解答:https://blog.youkuaiyun.com/Lulipeng_cpp/article/details/7584981 AC代码: #include&amp;lt;iostream&amp;gt; #include&amp;lt;string.h&amp;gt; using namespace std; int co...

Dicer_的博客 197

HDOJ 2639 Bone Collector II(01背包第k优解)

Bone Collector II Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4198    Accepted Submission(s): 2184 Problem Description The titl

想飞的小菜鸡 494

hdu2639——Bone Collector II——————【01背包、第k优解】

/**    解题思路:由于是让求第k优解问题,所以这里不再用转移方程,而是将转移过程转化成加入该件物品形成的有序序列tmpa[]和不加入该件物品形成的有序序列tmpb[]合并的过程。引用看到的一个例子:”如果想在全校找前十名的学生,只需要将各班的前十名合并后找前十即可“。 */ /**    题目大意:给你t组测试数据,每组测试数据包含n,v,k。然后是两行分别代表第i件物品的价值和

被虐的goshawk 705

HDU - 2639:Bone Collector II (01背包第k优解)

HDU2639:Bone Collector II(01背包第k优解) http://acm.hdu.edu.cn/showproblem.php?pid=2639 这题是上面那道的续题,求的是第 K 优解。 在01的基础上多加一维,dp[v][k],表示在v空间下第k大的价值。 遍历 第 i 个物品在体积为 V 大小的背包,有拿与不拿两种情况。每种情况又与上一步 K 个解对应。一共是2 ...

qq_38486516的博客 331

Bone Collector

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 ...

qq_41268947的博客 294

解析Bone Collector II HDU - 2639

#include<bits/stdc++.h> using namespace std; const int maxn=1005; int main() { int T; cin>>T; int dp[maxn][33],val[maxn],vol[maxn],A[33],B[33]; while(T--) { int n,v,k; cin>>n>>v>>k; int i,j,kk; for(i=0;i<n;i++)

malloch的博客 870

Bone Collector II 背包

Bone Collector II 原题链接https://vjudge.net/contest/348156#problem/D 对于寻找第k个最大值的题,我们要添加一个维度记录为第几个值 将所有情况找出,然后进行一个一个往数组中排序添加,最后输出最大值。 #include<cstring> #include<cstdio> #include<cmath>...

yeyuluo的博客 160

Bone Collector II

题目 样例 这道题出现了第k大值的问题,需要有a,b两个数组去存拿和不拿两种情况,并且还要合并起来! #include <iostream> #include <cstdlib> #include <algorithm> #include <cmath> #include <map> #include <set&gt...

cf刷题随笔 206

hdu 2639 Bone Collector II (01背包)

http://acm.hdu.edu.cn/showproblem.php?pid=2639 题意:给你一些Bone和一个背包体积,求第K大的价值; 思路:采用了三维的数组第三维是存(1-k)大的值的: View Code #include<cstdio>#include<iostream>#include<algorithm>#include&l...

weixin_33671935的博客 94

Bone Collector(骨头收集者)c++(01背包问题)

题目来源:杭州电子科技大学 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 110443 Accepted Submission(s): 44599 Problem Description Many years ago , in T...

qq_45808550的博客 1026

hdu 2602 Bone Collector 01背包

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

chen 525
上一篇: RQNOJ-PID2 / 开心的金明
下一篇: poj-3624Charm Bracelet
Eric_keke
博客等级 码龄12年 37粉丝 221原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值