Schrödinger's Knapsack ZOJ - 4019 线性DP

题意:有背包容量为c 给出两个数串 表示两种不同的物品  从物品中任意选多个数  

价值是背包剩余空间*选择元素所属数串的系数

问 最大价值


分析: 表面上看起来是个背包题 但是空间太大导致不能背

这里发现先放空间小的换来的价值大 所以我们应该先把两个数串排序 然后枚举 

这里由于要考虑次序的问题 于是先放哪个 就需要用动态规划的思路 选择价值更大的

dp[i][j] 表示总要选择第一个类型中前i个数 和第二个类型中j个数 那么这个结果最大的可能就是

max(dp[i][j-1]+第j个物品最后放进去的价值,dp[i-1][j]+第i个物品放进去的价值)


code:注意如果把dp数组全 memset 会超时 循环初始化才会没问题  后来用java写超时 用c写过了 。。。 无语的java

#include<bits/stdc++.h> 
using namespace std;
typedef long long ll;
const int maxn = 2010;
ll sum1[maxn],sum2[maxn],dp[maxn][maxn];
int a[maxn],b[maxn];
int main() {int t;scanf("%d",&t);while(t--) {int n,m,c;int k1,k2;sum1[0] = sum2[0] = 0;a[0] = b[0] = 0;ll ans=-1;scanf("%d%d%d%d%d",&k1,&k2,&c,&n,&m);for(int i=0;i<=n;i++) {for(int j=0;j<=m;j++)dp[i][j] = 0;}for(int i=1;i<=n;i++) {scanf("%d",&a[i]); }for(int i=1;i<=m;++i) {scanf("%d",&b[i]);}sort(a+1,a+1+n);sort(b+1,b+1+m);for(int i=1;i<=n;i++) {sum1[i] = sum1[i-1] + a[i];}for(int i=1;i<=m;++i) {sum2[i] = sum2[i-1] + b[i];}for(int i=1;i<=n;i++) {ll s = sum1[i];if(c>=s) {dp[i][0] = dp[i-1][0] + k1*(c-s);ans = max(dp[i][0],ans);}}for(int j=1;j<=m;j++) {ll s = sum2[j];if(c>=s) {dp[0][j] = dp[0][j-1] + k2*(c-s);ans = max(dp[0][j],ans);}}for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) {ll s = sum1[i] + sum2[j];if(c>=s) {dp[i][j] = max(dp[i-1][j] + k1*(c-s), dp[i][j-1] + k2*(c-s));ans = max(dp[i][j], ans);}}}printf("%lld\n",ans);}}

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

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

相关文章

python学习笔记(十 三)、网络编程

最近心情有点儿浮躁&#xff0c;难以静下心来 Python提供了强大的网络编程支持&#xff0c;很多库实现了常见的网络协议以及基于这些协议的抽象层&#xff0c;让你能够专注于程序的逻辑&#xff0c;而无需关心通过线路来传输比特的问题。 1 几个网络模块 1.1 模块socket 网络编…

[Leetcode][第174题][JAVA][地下城游戏][DFS][动态规划]

【问题描述】[中等] 【解答思路】 1. 回溯&#xff08;暴力&#xff09;& 优化 超时&#xff0c;需要优化 public int calculateMinimumHP(int[][] dungeon) {if (dungeon null || dungeon.length 0 || dungeon[0].length 0) {return 0;}int rowLen dungeon.length;in…

第十期:快来了解这五种热门的开发技能

开发人员是热门的工作岗位之一&#xff0c;在Indeed网站的2019年最热门工作排行榜上名次靠前。随着企业对数字化转型项目的需求不断增加&#xff0c;对能够开发这些数字化应用软件的个人的需求随之而来。 开发人员是热门的工作岗位之一&#xff0c;在Indeed网站的2019年最热门工…

蓝桥杯 平方十位数

2017 国赛c/c B组填空题集合平方十位数由0~9这10个数字不重复、不遗漏&#xff0c;可以组成很多10位数字。这其中也有很多恰好是平方数&#xff08;是某个数的平方&#xff09;。比如&#xff1a;1026753849&#xff0c;就是其中最小的一个平方数。请你找出其中最大的一个平方数…

PHP常见面试题

1.mvc是什么?相互间有什么关系? 答:mvc是一种开发模式,主要分为三部分:m(model),也就是模型,负责数据的操作;v(view),也就是视图,负责前后台的显示;c(controller),也就是控制器,负责业务逻辑 客户端请求项目的控制器,如果执行过程中需要用到数据,控制器就会到模型中获取数据,…

第十一期:数据挖掘其实就是为了干这四种事?

数据挖掘主要侧重解决四类问题&#xff1a;分类、聚类、关联、预测。数据挖掘非常清晰的界定了它所能解决的几类问题。这是一个高度的归纳&#xff0c;数据挖掘的应用就是把这几类问题演绎的一个过程。 数据挖掘最重要的要素是分析人员的相关业务知识和思维模式。一般来说&…

[剑指offer]面试题第[49]题[Leetcode][第264题][JAVA][丑数][动态规划][堆]

【问题描述】[中等] 【解答思路】 1. 动态规划 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(N) class Solution {public int nthUglyNumber(int n) {int a 0, b 0, c 0;int[] dp new int[n];dp[0] 1;for(int i 1; i < n; i) {int n2 dp[a] * 2, n3 dp[…

第十二期:常用的几种大数据架构剖析

常用的几种大数据架构剖析 随着大数据技术的发展&#xff0c;数据挖掘、数据探索等专有名词曝光度越来越高&#xff0c;但是在类似于Hadoop系列的大数据分析系统大行其道之前&#xff0c;数据分析工作已经经历了长足的发展&#xff0c;尤其是以BI系统为主的数据分析&#xff0…

【大数据】获取一篇新闻的全部信息

作业要求来自于&#xff1a;https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2894 给定一篇新闻的链接newsUrl&#xff0c;获取该新闻的全部信息 标题、作者、发布单位、审核、来源 发布时间:转换成datetime类型 点击&#xff1a; newsUrlnewsId(使用正则表达式re)cl…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第14篇]什么是基于线性对的密码学

这是最新的一期密码学52件事.我们基于前几周介绍一种"对"的概念. 对的定义 给定三个循环群G1,G2,G3,它们的基为q,生成器分别为g1,g2,g3.我们说一个函数e:G1G2→G3是一个密码对如果下面的等式都成立. [双线性]∀A,B∈G1,C,D∈G2:e(AB,C)e(A,C)⋅e(B,C),同时e(A,CD)…

第十五期:真相了,中台到底“出路”还是“末路”?

从 2015 年开始&#xff0c;到 2019 年现在为止&#xff0c;各大公司都在吹捧中台理念。 从 2015 年开始&#xff0c;到 2019 年现在为止&#xff0c;各大公司都在吹捧中台理念。 仿佛中台是业务复杂性的救世主&#xff0c;是某些架构师和 PM 的新出路&#xff0c;各种割韭菜的…

蓝桥杯 2017 国赛B组C/C++【对局匹配】

题意就是给我们一串数 让我们尽可能地取 约束条件是a[i] 和a[i]k不能同时出现 所有元素之间相差k的元素都不能同时出现 让我们求所能取到的最大的数的和是多少分析&#xff1a; dp思路&#xff0c;这个和树形dp有点相似 就是枚举0~k 然后在每个这个元素上迭代加k 每个元素保存…

架构师成长之路:如何保证消息队列的高可用

问题一&#xff1a;描述一下 JVM 的内存区域    程序计数器&#xff08;PC&#xff0c;Program Counter Register&#xff09;。在 JVM 规范中&#xff0c;每个线程都有它自己的程序计数器&#xff0c;并且任何时间一个线程都只有一个方法在执行&#xff0c;也就是所谓的当…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第27篇]什么是对称密码加密的AEAD安全定义?

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。这篇文章将从“安全定义和证明”一节开始&#xff0c;对认证加密进行简要概述。 AEAD Luke在最近的一篇文章…

dell的boot设置

1.开机后不久会有屏幕提示&#xff0c;然后按提示按F2就可以进入BIOS的界面了。也可以按F12后选择在菜单中选择"BIOS SETUP”进入。 2.设置BIOS时间:进入BIOS后&#xff0c;用左右箭头移动到“MAIN”选项,一般进入默认就是它&#xff0c;然后用上下箭头移动到System Time…

[转帖]Docker 清理占用的磁盘空间

Docker(二十七)-Docker 清理占用的磁盘空间 https://www.cnblogs.com/zhuochong/p/10076599.htmldocker system docker network一系列的docker 命令 感觉挺有裨益的 去年的时候还用过 一段时间不用 忘记的干干净净了. 1. docker system命令 docker system df命令&#xff0c;类…

2017蓝桥杯决赛-发现环 数据结构|搜索

问题描述小明的实验室有N台电脑&#xff0c;编号1~N。原本这N台电脑之间有N-1条数据链接相连&#xff0c;恰好构成一个树形网络。在树形网络上&#xff0c;任意两台电脑之间有唯一的路径相连。不过在最近一次维护网络时&#xff0c;管理员误操作使得某两台电脑之间增加了一条数…

第十七期:详解大数据处理中的Lambda架构和Kappa架构

在这张架构图中&#xff0c;大数据平台里面向用户的在线业务处理组件用褐色标示出来&#xff0c;这部分是属于互联网在线应用的部分&#xff0c;其他蓝色的部分属于大数据相关组件&#xff0c;使用开源大数据产品或者自己开发相关大数据组件。 典型互联网大数据平台架构 首先我…

[密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第28篇]什么是公钥密码学的IND-CCA安全定义?

这是一系列博客文章中最新的一篇&#xff0c;该文章列举了“每个博士生在做密码学时应该知道的52件事”:一系列问题的汇编是为了让博士生们在第一年结束时知道些什么。讨论了用于公钥加密的IND-CCA安全性。 IND-CCA安全代表选择明文的不可伪造性。这样的安全方案的思想就是给定…

玩转oracle 11g(51):select t.*,t.rowid

select t.*,t.rowid from wii_device_master t; ‘ 点开解锁 复制ctrlc crtl v加入新的值 很简单&#xff0c;sql语句后面加上for update即可&#xff1a; 但是今天遇到一种情况&#xff0c;无法对该表进行修改&#xff0c;因为这样会锁表的 下面这样写比较好&#xff0c;也…