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

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2639

求第k优解的关键代码:

用两个数组记录两种状态(选择或不选择),并且只要记录前k次。在这两个数组中都是前k次可能的最优解。所以我们只要把这两个数组做比较,一直排到k就行了

题目代码:

 1 #include <iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 int dp[1005][35],a[35],b[35],val[105],vol[105];
 6 int main()
 7 {
 8     int t,n,v,k,c,d,e;
 9     while(~scanf("%d",&t))
10     {
11         while(t--)
12         {
13             scanf("%d%d%d",&n,&v,&k);
14             for(int i=0;i<n;i++)
15             scanf("%d",&val[i]);
16             for(int i=0;i<n;i++)
17             scanf("%d",&vol[i]);
18             memset(dp,0,sizeof(dp));
19             memset(a,0,sizeof(a));
20             memset(b,0,sizeof(b));
21             for(int i=0;i<n;i++)
22             {
23                 for(int j=v;j>=vol[i];j--)
24                 {
25                     for(int t=1;t<=k;t++)
26                     {
27                         a[t]=dp[j-vol[i]][t]+val[i];
28                         b[t]=dp[j][t];
29                     }
30                     c=d=e=1;
31                     while(e<=k&&(c!=k+1||d!=k+1))
32                     {
33                         if(a[c]>b[d])
34                         dp[j][e]=a[c++];
35                         else
36                         dp[j][e]=b[d++];
37                         if(dp[j][e]!=dp[j][e-1])
38                         e++;
39                     }
40                 }
41             }
42             printf("%d\n",dp[v][k]);
43         }
44     }
45     return 0;
46 }
View Code

 

转载于:https://www.cnblogs.com/wang-ya-wei/p/5754571.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html自动按键,VBS脚本和HTML DOM自动操作网页

本来是想通过JS实现对其他页面的控制&#xff0c;发现跨域无法获取页面DOM来操作。接着考虑bat&#xff0c;发现也实现不了&#xff0c;于是想到vbs。vbs还是很强大啊&#xff0c;病毒之类很多都是vbs脚本啊。vbs打开浏览器&#xff0c;然后通过dom来操作页面&#xff0c;可以实…

opencv在同一窗口打印多张图片

首先&#xff0c;由于cv2处理的图片是通过ndarray的格式操作的&#xff0c;也就是说通过array的拼接就可以实现图片的拼接&#xff0c;那么之后就可以通过简单的imshow将合并的图片打印从而达到在一个窗口中显示多张图片的目的。 import cv2 import numpy as npimg1 cv2.imrea…

dj打碟怎么学_学DJ打碟 - Rane声卡连接

上一篇内容中&#xff0c;老师讲过在学DJ打碟的时候&#xff0c;是离不开对软件方面的操作&#xff0c;其实每一个学习过程&#xff0c;当你学会之后&#xff0c;在“回头看”的时候&#xff0c;都会觉得&#xff1a;原来学DJ打碟这么简单啊&#xff0c;这就是已经学习过的人会…

微信企业号第三方应用开发[一]——创建套件

注&#xff1a;文中绿色部分为摘自微信官方文档 第三方应用提供给企业的是一个应用&#xff0c;但是应用必须在套件下创建&#xff0c;所以第一步是要创建套件。 注册成为应用提供商&#xff0c;必须输入以下信息&#xff1a; 信息项要求及说明企业Logo应用提供商的企业Logo&am…

advanced east_SpriteKit Advanced —如何构建2,5D游戏(第二部分)

advanced eastby Luke Konior卢克科尼尔(Luke Konior) SpriteKit Advanced —如何构建2,5D游戏(第二部分) (SpriteKit Advanced — How to build a 2,5D game (Part II)) 介绍 (Intro) This article shows how to write basic shaders in the SpriteKit. It’s split into two…

html原生上传,一个基于HTML5及原生JS的文件上传组件--JohnUploader

运行效果图一、组件介绍基本特点基于HTML5的FileReader和FormData可以完成多文件选择&#xff0c;并预览完成文件的异步上传原生XHR对象&#xff0c;适配多浏览器代码class JohnUploader{url;fileField;vollay;/**** param url 文件上传的地址* param fileField 一个"文件…

[20170617]vim中调用sqlplus.txt

[20170617]vim中调用sqlplus.txt --//以前写过一篇emacs下调用sqlplus的文章,一直想学emacs,受限制自己掌握vim,对学习它没有兴趣,原链接如下: --//http://blog.itpub.net/267265/viewspace-1309032/ --//实际上vim也有插件连接数据库,我觉得不好用,一直没这样用. --//今天在整…

centos redis验证_centos7中安装、配置、验证、卸载redis

本文介绍在centos7中安装、配置、验证、卸载redis等操作&#xff0c;以及在使用redis中的一些注意事项。一 安装redis1 创建redis的安装目录利用以下命令&#xff0c;切换到/usr/local路径cd /usr/local键入以下命令&#xff0c;新建一个redis目录&#xff0c;用于放置redis软件…

实习生解雇_我们解雇了我们的顶尖人才。 我们做出的最佳决定。

实习生解雇by Jonathan Solrzano-Hamilton乔纳森索洛萨诺汉密尔顿(JonathanSolrzano-Hamilton) 我们解雇了我们的顶尖人才。 我们做出的最佳决定。 (We fired our top talent. Best decision we ever made.) “You will never be able to understand any of what I’ve create…

微信企业号第三方应用开发[二]——创建应用

在应用套件里添加应用 当你创建完应用套件后&#xff0c;需要在套件配置应用&#xff0c;应用的信息填写如下。 基本信息&#xff1a; 信息项要求及说明应用Logo应用的Logo&#xff0c;小于2M&#xff0c;640*640&#xff0c;在授权页会被用于展示。应用名称应用的名称&#xf…

es6新增的html标签,javascript – 如何导入已在html中的标签中定义的es6模块?

我可以在我的html文件me.html中定义一个模块&#xff1a;import Atom from ./atom.js;console.log("definition of getAtom")export default function getAtom(){return new Atom(atom);}console.log("exported getAtom")另见>是否可以将该“匿名”模块…

jQ效果:简单的手风琴效果

实现效果如图所示&#xff1a; html结构&#xff1a; <div class"item_box box10"><div class"item_box_wp"><div class"voice_2"><ul><li class"li1" id"li1"><div class"fold"…

golang 日志分析_容器日志采集利器:Filebeat深度剖析与实践

在云原生时代和容器化浪潮中&#xff0c;容器的日志采集是一个看起来不起眼却又无法忽视的重要议题。对于容器日志采集我们常用的工具有filebeat和fluentd&#xff0c;两者对比各有优劣&#xff0c;相比基于ruby的fluentd&#xff0c;考虑到可定制性&#xff0c;我们一般默认选…

机器学习做自动聊天机器人_建立聊天机器人需要什么? 让我们找出答案。

机器学习做自动聊天机器人by Vanco Stojkov通过Vanco Stojkov 建立聊天机器人需要什么&#xff1f; 让我们找出答案。 (What does it take to build a chatbot? Let’s find out.) Without any delay, the image below shows what we are building:没有任何延迟&#xff0c;下…

UVA 11582 Colossal Fibonacci Numbers!【数学】

大一刚开始接触ACM就买了《算法竞赛入门经典》这本书&#xff0c;当时只能看懂前几章&#xff0c;而且题目也没做&#xff0c;粗鄙地以为这本书不适合自己。等到现在快大三了再回过头来看&#xff0c;发现刘老师还是很棒的&#xff01; 扯远了。。。 题意&#xff1a;问f[a^b]%…

Codeforces 919D Substring (拓扑图DP)

手动博客搬家: 本文发表于20180716 10:53:12, 原地址https://blog.csdn.net/suncongbo/article/details/81061500 给定一个\(n\)个点\(m\)条边的有向图&#xff08;不一定无环&#xff09;&#xff0c;每个点上有一个小写字母。要找一条路径&#xff0c;使得路径上出现次数最多…

layui自定义查询条件html页面,Layui的数据表格+springmvc实现搜索功能的例子_飛雲_前端开发者...

如下所示&#xff1a;主要在前端页面加&#xff1a;搜索ID&#xff1a;useridcontent搜索在reload:function () {var keyWord$("#keyWord").val();var keyType$("#key_type option:selected").val();table.reload(contenttable,{method:post,where:{keyWor…

mysql+keepalived 双主热备高可用

理论介绍&#xff1a;我们通常说的双机热备是指两台机器都在运行&#xff0c;但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候&#xff0c;另外一台会马上自动接管并且提供服务&#xff0c;而且切换的时间非常短。MySQL双主复制&#xff0c;即互为Master-Sl…

java ldap userpassword 解密_Spring Boot中使用LDAP来统一管理用户信息

LDAP简介LDAP(轻量级目录访问协议&#xff0c;Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统&#xff0c;其专门针对读取&#xff0c;浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的&#xff0c;基于…

第三章之枚举、注解

2019-01-22内容&#xff1a;枚举、注解一、自定义一个枚举类1 public class TestSeason {2 3 public static void main(String[] args) {4 Season spring Season.Spring;5 System.out.println(spring);6 }7 }8 public class Season {9 //将属性定…