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,一经查实,立即删除!

相关文章

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…

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

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

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

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

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;我们一般默认选…

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

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

unity中怎么做河流_【干货】工作中怎么做工业设计的?(一)

最近在找工作&#xff0c;一直在看招聘信息。看到工业设计工资还是蛮高的。应届毕业生一般是4-6K&#xff0c;1-3年工作经验是6-8K&#xff0c;3年以后的差不多是8K以上了。我没有嫉妒羡慕恨&#xff0c;发誓&#xff0c;真的没有。工业设计已经被重视&#xff0c;未来的道路会…

[易学易懂系列|golang语言|零基础|快速入门|(一)]

golang编程语言&#xff0c;是google推出的一门语言。 主要应用在系统编程和高性能服务器编程&#xff0c;有广大的市场前景&#xff0c;目前整个生态也越来越强大&#xff0c;未来可能在企业应用和人工智能等领域占有越来越重要的地位。 本文章是【易学易懂系列|编程语言入门】…

spi收发时的寄存器sr不变_「正点原子Linux连载」第二十七章SPI实验(二)

1)实验平台&#xff1a;正点原子Linux开发板2)摘自《正点原子I.MX6U嵌入式Linux驱动开发指南》关注官方微信号公众号&#xff0c;获取更多资料&#xff1a;正点原子文件bsp_spi.c中有两个函数&#xff1a;spi_init和spich0_readwrite_byte&#xff0c;函数spi_init是SPI初始化函…

[JSOI2018]潜入行动

题解 一道思路不难但是写起来很麻烦的树形背包 我们发现每个节点有很多信息需要保留 所以就暴力的设\(f[u][j][0/1][0/1]\)表示点u的子树分配了j个监察器,点u有没有被控制,点u放没放监察器 然后就分四种情况暴力讨论就好了 注意背包的时候要卡常数 代码 #include<cstdio>…

css。元素样式、边框样式

1.外边距  margin 缩写形式&#xff1a; margin&#xff1a;上边距  右边距  下边距  左边距 margin&#xff1a;上下边距  左右边距 margin&#xff1a;上边距  左右边距  下边距 2.内边距  padding 缩写形式&#xff1a; padding&#xff1a;上边距  右边距…

C# 动态创建数据库三(MySQL)

前面有说明使用EF动态新建数据库与表&#xff0c;数据库使用的是SQL SERVER2008的&#xff0c;在使用MYSQL的时候还是有所不同 一、添加 EntityFramework.dll &#xff0c;System.Data.Entity.dll &#xff0c;MySql.Data, MySql.Data.Entity.EF6 注意&#xff1a;Entity Frame…

如何用计算机管理员权限,教你电脑使用代码添加管理员权限的详细教程

我们在使用电脑运行某些软件的时候&#xff0c;可能需要用到管理员权限才能运行&#xff0c;通常来说直接点击右键就会有管理员权限&#xff0c;但最近有用户向小编反馈&#xff0c;在需要管理员权限的软件上点击右键没有看到管理员取得所有权&#xff0c;那么究竟该如何才能获…

activiti 5.22的demo运行

activiti 5.22的demo运行 从github上clon下来的activiti项目,运行demo项目activiti-webapp-explorer2时&#xff0c;在使用到流程设计工作区&#xff0c;选取activiti modeler作为设计器的时候报错。 从下面的报错信息中发现&#xff0c;请求路径http://localhost:8080/activit…

内是不是半包围结构_轻钢别墅的体系结构

一、轻钢别墅介绍1、轻钢别墅的屋面系统轻钢别墅屋面系统是由屋架、结构OSB面板、防水层、轻型屋面瓦&#xff08;金属或沥青瓦&#xff09;组成的。轻钢结构的屋面&#xff0c;外观可以有多种组合。材料也有多种。在保障了防水这一技术的前提下&#xff0c;外观有了许多的选择…

hive 去重 字符串_hive函数

Hive是建立在 Hadoop 上的数据仓库基础架构,定义了简单的类 SQL 查询语言(HQL)函数分类&#xff1a;简单内置函数&#xff1a;数学函数&#xff0c;字符函数&#xff0c;日期函数&#xff0c;条件函数&#xff0c;聚合函数。高级内置函数&#xff1a;行列转换函数&#xff0c;分…

【Python3爬虫】为什么你的博客没人看呢?

我相信对于很多爱好和习惯写博客的人来说&#xff0c;如果自己的博客有很多人阅读和评论的话&#xff0c;自己会非常开心&#xff0c;但是你发现自己用心写的博客却没什么人看&#xff0c;多多少少会觉得有些伤心吧&#xff1f;我们今天就来看一下为什么你的博客没人看呢&#…

泰安高考2021成绩查询,泰安高考成绩查询入口2021

高考结束之后&#xff0c;为了方便大家进行高考成绩的查询&#xff0c;下面跟着出国留学网小编来一起看看“泰安高考成绩查询入口2021”&#xff0c;仅供参考&#xff0c;希望对大家有帮助。2021山东高考成绩查询时间及志愿填报时间根据山东2021年夏季高考须知&#xff0c;2021…