Schrödinger's Knapsack ZOJ - 4019(dp)

百元耳夹式蓝牙耳机深度评测:弱水时砂Astro X的佩戴与音质体验 蓝牙耳机作为现代无线音频技术的代表,其核心在于通过蓝牙协议实现音频信号的无损或高质量传输,为用户带来便捷的移动聆听体验。其技术价值体现在摆脱线材束缚、提升佩戴自由度,并广泛应用于通勤、运动、学习等多元场景。在众多形态中,开放式耳机因其不堵塞耳道、能保持环境音感知而备受关注,尤其适合长时间佩戴和运动使用。本次评测的弱水时砂Astro X耳夹式蓝牙耳机,正是这一技术路线的典型产品。它采用创新的耳夹式设计,结合13mm大动圈单元和石墨烯复合振膜,在百元价位实现了稳固佩戴与越级音质的平衡,为追求高性价比和舒适体验的 阅读详情

Schrödinger's Knapsack

ZOJ - 4019

DreamGrid has a magical knapsack with a size capacity of called the Schrödinger's knapsack (or S-knapsack for short) and two types of magical items called the Schrödinger's items (or S-items for short). There are S-items of the first type in total, and they all have a value factor of ; While there are S-items of the second type in total, and they all have a value factor of . The size of an S-item is given and is certain. For the -th S-item of the first type, we denote its size by ; For the -th S-item of the second type, we denote its size by .

But the value of an S-item remains uncertain until it is put into the S-knapsack (just like Schrödinger's cat whose state is uncertain until one opens the box). Its value is calculated by two factors: its value factor , and the remaining size capacity of the S-knapsack just after it is put into the S-knapsack. Knowing these two factors, the value of an S-item can be calculated by the formula .

For a normal knapsack problem, the order to put items into the knapsack does not matter, but this is not true for our Schrödinger's knapsack problem. Consider an S-knapsack with a size capacity of 5, an S-item with a value factor of 1 and a size of 2, and another S-item with a value factor of 2 and a size of 1. If we put the first S-item into the S-knapsack first and then put the second S-item, the total value of the S-items in the S-knapsack is ; But if we put the second S-item into the S-knapsack first, the total value will be changed to . The order does matter in this case!

Given the size of DreamGrid's S-knapsack, the value factor of two types of S-items and the size of each S-item, please help DreamGrid determine a proper subset of S-items and a proper order to put these S-items into the S-knapsack, so that the total value of the S-items in the S-knapsack is maximized.


Input

The first line of the input contains an integer (about 500), indicating the number of test cases. For each test case:

The first line contains three integers , and (), indicating the value factor of the first type of S-items, the value factor of the second type of S-items, and the size capacity of the S-knapsack.

The second line contains two integers and (), indicating the number of the first type of S-items, and the number of the second type of S-items.

The next line contains integers (), indicating the size of the S-items of the first type.

The next line contains integers (), indicating the size of the S-items of the second type.

It's guaranteed that there are at most 10 test cases with their larger than 100.

Output

For each test case output one line containing one integer, indicating the maximum possible total value of the S-items in the S-knapsack.

Sample Input
3
3 2 7
2 3
4 3
1 3 2
1 2 10
3 4
2 1 2
3 2 3 1
1 2 5
1 1
2
1
Sample Output
23
45
10
Hint

For the first sample test case, you can first choose the 1st S-item of the second type, then choose the 3rd S-item of the second type, and finally choose the 2nd S-item of the first type. The total value is .

For the second sample test case, you can first choose the 4th S-item of the second type, then choose the 2nd S-item of the first type, then choose the 2nd S-item of the second type, then choose the 1st S-item of the second type, and finally choose the 1st S-item of the first type. The total value is .

The third sample test case is explained in the description.

It's easy to prove that no larger total value can be achieved for the sample test cases.


题意 

有个容量为c的背包,两类物品,其权值分别为k1、k2,第一种物品有n个,第二种有m个,每个物体都有自己的体积。当放进一个物体进入背包时,其获得的价值的对应的权值k乘上放入当前物体后剩余的容量。现在问,能够获得的最大价值是多少?

 

分析 

显然,对于同一类物品,取其体积最小的几个是最划算的,所以先排序。那么根据这个来定义状态dp[i]][j]为选了第一种前i个、第二种前j个,最小的前i个和前j个是必选的,那么此时的容量我们能够计算出来。状态转移也很显然,dp[i][j]=max(dp[i-1][j],dp[i][j-1]) (c-suma[i]-sumb[j]>0),其中suma和sumb为前缀和。边界的地方要处理一下。


#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
ll dp[2020][2020];
ll k1,k2,c;
int n,m;
ll ans;
ll a[2020],b[2020];
ll suma[2020],sumb[2020];
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%lld%lld%lld",&k1,&k2,&c);
        scanf("%d%d",&n,&m);
        for(int i = 1; i <= n; i++){
            scanf("%lld",&a[i]);
        }
        for(int i = 1; i <= m; i++){
            scanf("%lld",&b[i]);
        }
        sort(a+1,a+1+n);
        sort(b+1,b+1+m);
        suma[0] = 0;
        for(int i = 1; i <= n; i++){
            suma[i] = suma[i-1] + a[i];
        }
        sumb[0] = 0;
        for(int i = 1; i <= m; i++){
            sumb[i] = sumb[i-1] + b[i];
        }
        ans = -1;
        for(int i = 0; i <= n; i++){
            for(int j = 0; j <= m; j++){
                dp[i][j] = 0;
                if(i == 0 && j == 0) continue;
                if(i == 0){
                    if(c >= sumb[j]){
                        dp[i][j] = dp[i][j-1] + k2 * (c - sumb[j]);
                    }
                }
                else if(j == 0){
                    if(c >= suma[i]){
                        dp[i][j] = dp[i-1][j] + k1 * (c - suma[i]);
                    }
                }
                else{
                    ll s = suma[i] + sumb[j];
                    if(c >= s){
                        dp[i][j] = max(dp[i][j-1]+k2*(c-s),dp[i-1][j]+k1*(c-s));
                    }
                }
                ans = max(ans,dp[i][j]);
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}

高通ipq4018?4019开发资料 高通ipq4018?4019开发资料 高通ipq4018?4019开发资料 高通ipq4018?4019开发资料 立即下载

相关推荐

PaddleOCR实战:如何在CentOS 8.5上搭建高性能OCR识别环境

本文详细介绍了在CentOS 8.5系统上搭建高性能PaddleOCR识别环境的完整指南。从系统环境准备、PaddlePaddle框架部署到PaddleOCR的定制化安装与性能优化,提供了针对生产环境的解决方案,包括GPU/CPU环境配置、内核参数调优及常见问题排查,帮助用户实现高效OCR识别。

weixin_29223603的博客 349

ZOJ 4019 (动态规划)

题目链接:https://vjudge.net/problem/ZOJ-4019 题意 有个容量为c的背包,两类物品,其权值分别为k1、k2,第一种物品有n个,第二种有m个,每个物体都有自己的体积。当放进一个物体进入背包时,其获得的价值的对应的权值k乘上放入当前物体后剩余的容量。现在问,能够获得的最大价值是多少? 思路: 因为价值与物体放入后剩余的容量有关,所以,对于同一类物品,先放入体...

weixin_44757834的博客 264

【解决方案】使用transformer指定显卡后,模型依然加载到默认第1张显卡上

按理说指定了环境变量为后面几张显卡,模型会自动加载到我们指定的显卡上。可是查看gpu使用情况,发现还是加载在了第一张显卡上,这是为啥呢?

m0_56745306的博客 2440

ZOJ 4019 Schrödinger's Knapsack (dp)

传送门思路: dp题还是做的太少, 不够灵活,这道题自己第一反应是背包,但容量太大,不可行。按题意分析,每一类里各自的价值是相同,所以当在一类中挑选的时候,当然是体积小的优先。所以对于两类来说也是大趋势是体积小的优先, 所以我们可以从小到大枚举A,B类的任意两个区间, 只要这两个区间的体积和小于总容量就行。但是A,B类的物品顺序还有影响,我们用dp[i][j]代表枚举A类的1~i区间,B类的1~j...

du_lun的博客 589

【Unity+HoloLens2】从0开始在HoloLens2部署MR工程

HoloLens2部署的权威教程在微软的官方文档中,但有些问题其实官方文档并没有列出,所以在实际开发过程中如果遇到bug,就需要自身或者前人的经验去解决。比如:对于Hololens2来说,在VS中需选择ARM64而不是x86。部署需要有良好的网速;工程打包出来的文件路径和工程路径有关联,如果这两个路径不匹配,部署就会失败。部署后打不开可能是因为Unity中未添加需要部署的场景,在Build Settings中点击Add open Scenes。...

fmxs 4571

手把手教你用Copilot插件在Obsidian里免费接入DeepSeek-R1(附硅基流动API密钥获取)

本文详细介绍了如何通过Copilot插件在Obsidian中免费接入DeepSeek-R1模型,实现智能知识管理。从硅基流动API密钥获取到插件配置,再到高级功能调优和实战应用技巧,手把手教你打造AI驱动的个人知识库。

weixin_33686714的博客 2790

ZOJ 4019 Schrödinger's Knapsack(dp+贪心)

Schrödinger's KnapsackTime Limit: 1 Second      Memory Limit: 65536 KBDreamGrid has a magical knapsack with a size capacity of  called the Schrödinger's knapsack (or S-knapsack for short) and two type...

albertluf的博客 576

【算法设计与分析】期末复习题(超详细)

刚刚整理了一下电脑的文件,发现了这份上学期的算法设计与分析期末复习题,有需要的文后自取。

a1234567822的博客 6610

ZOJ_4019_Schrödinger's Knapsack (dp)

传送门 题意:给你两个S序列s1s1s_1,s2s2s_2,每个 序列有一个系数k1k1k_1,k2k2k_2,现在有一个总容量c,问你从这两个序列中取数,使得最后的价值最大。 每个数放进去的价值为(当前容量-这个数占的容量)*系数。 比如现在c=10,我们从s1s1s_1中去数字1,那么价值就为(10-1)*s1s1s_1. 思路:dp。dp[i][j]代表从s1s1s_1中取i个最小的...

yyy_3y的博客 366

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

jks212454的博客 5572

使用MATLAB和Simulink来设计并仿真一个智能家居多传感器数据融合系统

智能家居多传感器数据融合系统旨在通过集成来自多种不同类型的传感器的数据,以提供更精确和可靠的环境信息或用户状态监测。例如,将温度、湿度、光照强度、运动检测等多种传感器的数据结合起来,可以更好地了解家庭内部的状态,并做出相应的调整或响应。在这个教程中,我们将使用MATLAB和Simulink来设计并仿真一个智能家居多传感器数据融合系统。

amy_mhd的博客 187

zoj4019(dp)

Schrödinger's Knapsack Time Limit: 1 Second      Memory Limit: 65536 KB DreamGrid has a magical knapsack with a size capacity of  called the Schrödinger's knapsack (or S-knapsack for sho

yypurpose的博客 406

RT-DETR改进策略【Conv和Transformer】| HiLo注意力机制 通过分离处理图像的高频和低频信息,高效处理图像特征

本文记录的是利用改进检测模型,针对目标检测中面临的多尺度特征融合效率与长距离依赖建模难题,HiLo注意力模块的引入旨在通过频率解耦策略优化高分辨率特征处理,将高频细节(如目标边缘)与低频语义(如场景结构)分离建模,提升目标检测精度。Fast Vision Transformers with HiLo AttentionHiLo注意力模块的提出源于对传统自注意力机制局限性的反思。传统多头自注意力(MSA)在处理高分辨率图像时存在以下问题:HiLo将注意力模块分为高频(Hi-Fi)和低频(Lo-Fi)两个分支,

Limiiiing的博客 814

Zoj-4019 Schrödinger's Knapsack(线性dp)

Schrödinger’s Knapsack Time Limit: 1000 ms Memory Limit: 65536 KB 链接 zoj 4019 题目描述 有两类物品,价值分别为k1,k2,数量分别为n,m,给出每个物品占用的体积,每件物品放入背包的价值是放入背包后,k * 当前剩余体积。求这个背包所能装入的最大价值。 Input 包含T组数据。 第一行给出k1,k2和背包容量c。 第二...

October の 补题记录 239

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Schrödinger's Knapsack ZOJ - 4019 (DP)

Schrödinger's Knapsack 题目连接:ZOJ - 4019题意:有两类物品, 价值分别为k1, k2,第一类物品有n个, 第二类有m个, 将其放入容量为c的容器中, 每放一个物品得到价值为:val=k*v(k为放入的物品的价值, v为放入该...

Sirius_han的博客 266

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【ZOJ - 4019】Schrödinger's Knapsack (dp,背包,贪心,组内贪心组间dp)

题干: 有两种物品,k分别为k1,k2,有大小各不一的这两种物品若干,放入容量为c的背包中,能获得求最大的值。放的顺序会影响结果。每次放入一物品,其获得的值都可以用v=kr计算,r表示放入后背包剩下的容量。 有两种物品分别为n,m个,每种物品对应价值k1,k2。有一个容量为c的背包,每次将一个物品放入背包所获取的价值为(k1或k2)*放入物品后的剩余体积。求问所获取的最大价值。 解题报告: ...

xuanweiace的博客 541

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ZOJ - 4019 Schrödinger's Knapsack dp

题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3981 题意: 很明显当我们可以继续取物品的时候 我们应该先取小的那一个 这样可以保证得到的价值 最大 dp[i][j]  表示第一组取前i个 第二组取前j个   dp[i][j] = max(dp[i][j-1] + v2 * 剩余空间, dp[i-1][...

还我笑颜 220

ZOJ Problem Set - 4019 Schrödinger's Knapsack(DP+前缀和)

Schrödinger's Knapsack Time Limit:1 Second Memory Limit:65536 KB DreamGrid has a magical knapsack with a size capacity ofcalled the Schrödinger's knapsack (or S-knapsack for short) and t...

pxlsdz的博客 391

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

题意:有背包容量为c 给出两个数串 表示两种不同的物品  从物品中任意选多个数  价值是背包剩余空间*选择元素所属数串的系数问 最大价值分析: 表面上看起来是个背包题 但是空间太大导致不能背这里发现先放空间小的换来的价值大 所以我们应该先把两个数串排序 然后枚举 这里由于要考虑次序的问题 于是先放哪个 就需要用动态规划的思路 选择价值更大的dp[i][j] 表示总要选择第一个类型中前i个数 和第二...

qq_33859479的博客 209

ZOJ 4019 Schrödinger's Knapsack (DP)

题目链接 背包问题,但放东西的顺序会影响结果,放入基础价值为k的物品的贡献为kr,其中r为放入这个物品后背包剩余的体积。且规定只有两种价值的物品,分别为ka,kb。给出每个物品的体积,求最大的总价值。 由于同种物品只有体积上的差别,基础价值是相同的,因此易知同种物品必然是放体积小的比放体积大的更优。 先把两种物品分别按体积排序,dp[i][j]表示放入了第一种体积前i小、第二种体积前j小物品...

NPU_SXY的博客 236

ZOJ 4019F - Schrödinger's Knapsack --补题 dp

题目:给两个序列,两个序列的系数分别为k1,k2,有一个背包容量为c,从两个序列里面取数(这个数相当于放入物品的体积)放入到背包中,使得背包里面装的价值最大 条件:1,每次放进背包里面的价值=背包剩余的体积*放入物品对应序列的系数 输入:输入t组数据           k1,k2,c(1&lt;=k1,k2,c&lt;=10的7次方)           输入两个序列的长度n,m(1&l...

qq_40306845的博客 321

ZOJ-4019 18th浙江省赛F.Schrödinger's Knapsack(dp)

题意: 给两个序列s1,s2,每个序列都有一个系数k1,k2,现在有一个总容量c,要求从这两个序列中取数,使得最后的价值最大。每个数放进背包之后获得的价值为(当前容量-这个数占的容量)*当前序列的系数。  思路: 已知总数n和m较小,易知每个序列放入背包的顺序应该是从小到大的,所以dp[i][j]表示将s1序列的第1...i数和s2序列的第1...j数放入背包时取得的最大价值。s[i][j]

yo_bc的博客 342

ZOJ 4019 Schrödinger‘s Knapsack dp

ZOJ 4019 Schrödinger's Knapsack dp题意思路Code 传送门:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827370240 题意 给一个背包,体积为c,有两类物品,第一类有n个,权值为k1,第二类有m个,权值为k2。每个物品都有自己的体积。给一个背包,体积为c,有两类物品,第一类有n个,权值为k1,第二类有m个,权值为k2。每个物品都有自己的体积。给一个背包,体积为c,有两类物品,第一类有n个,权值为k

狙击美佐的博客 146

Schrödinger's Knapsack ZOJ4019

题意是有一个背包,有两类东西,每一类东西都有一个系数,每个东西的价值等于 (当前背包剩余体积-当前物品体积)*系数先考虑一下贪心 ,把两类东西按体积排个序。dp状态转移方程为  dp[i][j]=max(dp[i-1][j]+k1*as,dp[i][j-1]+k2*as); 其中as为当前剩余体积一定要把边界初始化做好 QAQhttp://acm.zju.edu.cn/onlinejudge/sh...

qq_41231363的博客 235

Schrödinger's Knapsack ZOJ - 4019 (背包问题)

题目链接:https://zoj.pintia.cn/problem-sets/91827364500/problems/91827370240(原网站) https://cn.vjudge.net/problem/ZOJ-4019(vj) 题目大意:有一个容量为c的背包,有两大类物品,这两类物品分别有各自的系数 k1和 k2,两类物品的数量分别是n和m,每类中的每种物品都有自己体积,但每种物...

DC_zhangC4的博客 208

Schrödinger's Knapsack(贪心+DP)

题目链接:https://cn.vjudge.net/problem/ZOJ-4019 DreamGrid has a magical knapsack with a size capacity ofcalled the Schrödinger's knapsack (or S-knapsack for short) and two types of magical items called...

永夜莫明的博客 306
上一篇: Mergeable Stack ZOJ - 4016
下一篇: A Spy in the Metro UVA - 1025(dp)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值