CF609D D. Gadgets for dollars and pounds

题目链接

题意:

在最少的时间内并且价格在s内从m个物品中购买k个物品

题解:

如果Nura能在x天内买到k个小玩意,那么她也能在x+1天内买到这些小玩意。所以,这个答案是单调的。因此,我们可以使用二分查找来找到最小的天数。

第i天的美元汇率和英镑汇率分别存储在a、b数组中,之后输入m个w物品第一个参数是1则表示只能用美元买存放到c数组中,否则只能用英镑买存到d数组中
下面进行二分check表示前i天花最少的钱买k个物品的价格是否小于s
每天可以买任意个商品但是一个商品只能买一次,显然可以找到前mid天的最小美元和最小英镑之后依次分类×对应的商品价格。
用e数组来表示m个商品在前mid天化最少的美元mx1,与花最少的英镑mx2的代价,之后排序获得前k个代价小的商品的总和并判断是否多于总价钱s;
最后最少天数存在的话,则依次输出商品的编号与买的时间。这些⭐被存放到ve<pl> f(m)数组中。

#include <bits/stdc++.h>
using namespace std;#define fi first
#define se second
#define ve vector
#define all(x) (x).begin(), (x).end()
#define rep(i, a, b) for (int i = a; i < b; i++)
#define per(i, a, b) for (int i = a; i >= b; i--)using pl = pair<int64_t, int>;inline int red() {int x;cin >> x;return x;
}void solve() {int n = red(), m = red(), k = red(), s = red();ve<int64_t> e(m);ve<pl> f(m);ve<int> a(n), b(n), c(m), d(m);generate(all(a), red);generate(all(b), red);rep(i, 0, m) {int op = red();if (op == 1) {c[i] = red();} else {d[i] = red();}}auto check = [&](int mid, int flag) -> bool {int64_t sum = 0;int mx1 = 1e9 + 7, mx2 = 1e9 + 7, d1, d2;rep(i, 0, mid) {if (mx1 > a[i]) {mx1 = a[i];d1 = i;}if (mx2 > b[i]) {mx2 = b[i];d2 = i;}}rep(i, 0, m) {e[i] = (int64_t)c[i] * mx1 + (int64_t)d[i] * mx2;}sort(all(e));rep(i, 0, k) {sum += e[i];}if (flag) {rep(i, 0, m) {f[i] = {(int64_t)c[i] * mx1 + (int64_t)d[i] * mx2, i};}sort(all(f));rep(i, 0, k) {if (c[f[i].se]) {cout << f[i].se + 1 << ' ' << d1 + 1 << '\n';} else {cout << f[i].se + 1 << ' ' << d2 + 1 << '\n';}}}return sum <= s;};int low = 0, high = n;while (low < high) {int mid = (low + high) >> 1;if (check(mid, 0)) {high = mid;} else {low = mid + 1;}}if (check(low, 0)) {cout << low << '\n';check(low, 1);} else {cout << -1 << '\n';}
}int main() {ios_base::sync_with_stdio(false);cin.tie(nullptr);int t = 1;while (t--) {solve();}return 0;
}

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

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

相关文章

nvidia origin nx 刷机JETPACK 6

条件&#xff1a; 1.sdkmanager 链接&#xff1a;https://pan.baidu.com/s/1pmeT7_vKF_NXvP8xEhCelw?pwd8q1e 提取码&#xff1a;8q1e 2.ubuntu 20或者ubuntu22 3.nvidia orin nx Nvidia Jetson Orin NX&#xff08;一&#xff09;开始刷机_jetson nx刷机-CSDN博客

基于python实现的深度学习web多格式纠错系统

基于python实现的深度学习web多格式纠错系统 开发语言:Python 数据库&#xff1a;MySQL所用到的知识&#xff1a;Django框架工具&#xff1a;pycharm、Navicat、Maven 系统功能实现 用户登录 登录功能是本系统一个非常重要的功能&#xff0c;这极大的保护了系统的安全。登录…

大模型智力升级:AI的未来之路

大模型的发展引领了人工智能的新时代&#xff0c;其强大的数据处理和学习能力在医疗、金融、教育等众多领域取得了令人瞩目的成就。然而&#xff0c;随之而来的挑战也不容忽视。尽管大模型在特定任务上展现出了卓越的性能&#xff0c;但它们在理解复杂语境、处理未见情况的能力…

Spring之 依赖项

文章目录 依赖注入基于构造函数的依赖注入基于 Setter 的依赖注入依赖解析过程依赖注入的示例 依赖关系和配置详细信息直接值&#xff08;原语、字符串等&#xff09;idref标签References to Other Beans &#xff08;对其他 Bean的引用&#xff09;Inner Beans&#xff08;内部…

【NumPy】全面解析add函数:高效数组加法操作

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

【全开源】Java共享茶室棋牌室无人系统支持微信小程序+微信公众号

打造智能化休闲新体验 一、引言&#xff1a;智能化休闲时代的来临 随着科技的飞速发展&#xff0c;智能化、无人化服务逐渐渗透到我们生活的各个领域。在休闲娱乐行业&#xff0c;共享茶室棋牌室无人系统源码的出现&#xff0c;不仅革新了传统的休闲方式&#xff0c;更为消费…

聊聊最近很火的混合专家模型(MoE)

前段时间&#xff0c;在2024年NVIDIA GTC大会上&#xff0c;英伟达不小心透露了GPT-4采用了MoE架构&#xff0c;模型有1.8万亿参数&#xff0c;由8个220B模型组成&#xff0c;与此前的GPT-4泄露的信息一致。 近半年多以来&#xff0c;各类MoE大模型更是层出不穷。在海外&#…

【Go】十一、标准化请求返回与viper管理配置文件的简单使用

请求返回的返回方法 这里指的是&#xff1a;传参的方式&#xff0c;类似与Java的r.setData() 创建目录&#xff1a; user-web global response user.go 定义一个结构体用于接收返回值&#xff0c;这里的 json 属于将对象转换为 json 时的规则定义。 时间处理 方法一&#x…

【机器分配问题】

问题&#xff1a; 现有设备n台&#xff0c;可投放到m个项目中&#xff0c;每个项目的产量与投入该项目的设备数量有关。如表2所示为三个项目的产量&#xff08;吨&#xff09;和投入设备&#xff08;台&#xff09;的关系。求对m个项目的最优设备分配&#xff0c;使总产量效益…

2024年QMT智能量化交易全解读:一文带你深入了解什么是QMT

随着科技的飞速发展和金融市场的日益成熟&#xff0c;量化交易逐渐成为投资者关注的焦点。QMT&#xff08;Quantitative Market Trading&#xff09;智能量化交易系统&#xff0c;作为量化交易领域的重要工具&#xff0c;以其高效、精准、自动化的特点&#xff0c;受到越来越多…

【TensorFlow深度学习】Dropout层工作原理与实际运用

Dropout层工作原理与实际运用 Dropout层工作原理与实际运用Dropout&#xff1a;随机失活的艺术工作机制实现代码示例实际运用成效结语 Dropout层工作原理与实际运用 在深度学习的征途中&#xff0c;模型的过拟合问题一直是研究者们面临的一大挑战。过拟合意味着模型在训练数据…

Ableton Live 11 Suite for Mac:音乐创作的全能伙伴

在数字音乐创作的广阔天地中&#xff0c;Ableton Live 11 Suite for Mac无疑是一颗璀璨的明星。作为一款专业的音乐制作软件&#xff0c;它集合了音频录制、编辑、混音、母带制作等全方位功能&#xff0c;为Mac用户提供了无与伦比的音乐创作体验。 Ableton Live 11 Suite拥有直…

Ubuntu/Linux 安装Paraview

文章目录 0. 卸载已有ParaView1. 安装ParaView1.1 下载后安装 2.进入opt文件夹改名3. 更改启动项4. 创建硬链接5. 添加桌面启动方式6. 即可使用 0. 卸载已有ParaView YUT 1. 安装ParaView https://www.paraview.org/ 1.1 下载后安装 找到下载的文件夹&#xff0c;文件夹内…

NTLM Relay Gat:自动化NTLM中继安全检测工具

关于NTLM Relay Gat NTLM Relay Gat是一款功能强大的NTLM中继威胁检测工具&#xff0c;该工具旨在利用Impacket工具套件中的ntlmrelayx.py脚本在目标环境中实现NTLM中继攻击风险检测&#xff0c;以帮助研究人员确定目标环境是否能够抵御NTLM中继攻击。 功能介绍 1、多线程支持…

日用百货元宇宙 伊利牛奶亮相博鳌论坛

近日,博鳌亚洲论坛2024年会在海南博鳌举行,本次年会以“亚洲与世界:共同的挑战,共同的责任”为主题,受到了亚洲各国的高度重视。在本次论坛上,伊利牛奶旗下的金典鲜牛奶作为博鳌亚洲论坛2024年年会官方唯一指定鲜奶亮相,以顶配鲜活营养,向世界贡献中国的健康方案。据悉,这是伊利…

AdaBoost 乳腺癌数据挖掘

目录 1.数据集背景 2 集成学习方法 AdaBoost集成过程 3 个体学习器 结果评价 准确率以及混淆矩阵 评估集成学习模型的泛化学习能力 评估集成学习模型的多样性 结论 源码 1.数据集背景 乳腺癌数据集是一个非常经典的二元分类数据集&#xff0c;被广泛应用…

LSTM长短时记忆网络:推导与实现(pytorch)

LSTM长短时记忆网络&#xff1a;推导与实现&#xff08;pytorch&#xff09; 背景推导遗忘门输入门输出门 LSTM的改进&#xff1a;GRU实现 背景 人类不会每秒钟都从头开始思考。当你阅读这篇文章时&#xff0c;你会根据你对以前单词的理解来理解每个单词。你不会把所有东西都扔…

Camunda 7.x 系列【64】实战篇之挂起、删除流程模型

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 前后端基于若依:https://gitee.com/y_project/RuoYi-Vue 流程设计器基于RuoYi-flowable:https://gi…

2024年6月1日(星期六)骑行禹都甸

2024年6月1日 (星期六&#xff09;骑行禹都甸&#xff08;韭葱花&#xff09;&#xff0c;早8:30到9:00&#xff0c;昆明氧气厂门口集合&#xff0c;9:30准时出发【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点:昆明氧气厂门口集合 &#xff0c;…

Linux系统维护

1. 批量安装部署 2. 初始化配置 3. 禁用Selinux 永久更改 SELinux 配置&#xff1a; 编辑 SELinux 配置文件&#xff1a;使用文本编辑器打开 /etc/selinux/config 文件&#xff1a; 在配置文件中&#xff0c;找到 SELINUX… 的行。将其值更改为以下选项之一&#xff1a; e…