题解:P14174 【MX-X23-T4】卡常数

news/2025/10/23 21:24:00/文章来源:https://www.cnblogs.com/Noivelist/p/19161662

题目传送门

超级水题 , 谁都可以拿的经验
考察贪心 + 堆(最简单的用优先队列实现)


题面

给定 $ n$ 个数组和每个数组的常数 \(x\) 和长度 \(l\) ,
给定每个数组的 $a_i $ 、 \(b_i\) ,
定义是可以实施 \(k\) 次把某个 \(b_i\) 换成 \(a_i\) ,
当前数组的贡献是乘积 , 总贡献是所有数组贡献的和 。
保证 \(b_i\le a_i\)
求出最小总贡献

思路

其实不管是 \(b_i\le a_i \ \ or \ \ b_i \ge a_i\) , 这个题目的做法都是一样的
我们在输入的同时预处理完当前数组的乘积 , 同时也可以得出当前数组每个单元的 \((a_i-b_i)/a_i\) 也就是这个单元如果变化了 , 对当前数组的变化率 。
$\ $
sort(言简意赅
$\ $
我们考虑计算出他们对于原答案的变化量 (这一步详见代码,有个细节需要调,这一步的正确性在 sort 这一步中体现), 然后我们取其中 \(\min(l,k)\) 个元素丢进优先队列 。
最后输入完了也处理完了 , 只要取 \(k\) 个变化量减一减不加修饰的原答案 , 就出来了最小值了 。


\(\Large \mathcal CODE\)


#include<bits/stdc++.h>
#define int long long 
#define fi first
#define se second
using namespace std;const int N = 5e5 + 10;
int a[N], b[N];
priority_queue<int> q;
int n, k;
pair<long double, int> ans[N];
int res;main(void)
{ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int tmp;cin >> n >> k;while (n--) {int x, l;cin >> x >> l;int now = x;for (int i = 1; i <= l; i++) {cin >> a[i];now *= a[i];}res += now;for (int i = 1; i <= l; i++) {cin >> b[i];}for (int i = 1; i <= l; i++) {ans[i].fi = 1.l * (a[i] - b[i]) / a[i];ans[i].se = i;}sort(ans + 1, ans + 1 + l);for (int i = 1; min(k, l) >= i; i++) {tmp = now / a[ans[i].se] * b[ans[i].se];q.push(tmp);now -= tmp;}}for (int i = 1; i <= k; i++) {res -= q.top();q.pop();}cout << res << endl;
}

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

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

相关文章

比赛题解 总结

1.[HNOI2003] 操作系统 思路 此题是一道大模拟,主要根据任务优先级来计算最后执行此任务的时间,此时我们可以进行分类讨论:当此任务的到达时间大于等于上一个未执行完任务的结束时间,上一个任务就一定能运行完,因…

解题报告-拯救计划(概率 DP)

拯救计划 题目背景 有一天,地球护卫队的 P 队长得知,邪恶的 Y 星球要向地球发起侵略。正义感责任感极强的小 P 怎么可能允许这类事情发生。为了小 W,同时也为了保卫地球,小 P 准备动员所有力量殊死一战,正当小 P …

解码Linux文件IO之库的制作与应用

程序编译的四个核心阶段 程序从源代码(.c/.cpp)到可执行文件,需经过预处理、编译、汇编、链接四个步骤,每个步骤生成不同中间文件,最终输出可执行程序。预处理作用:展开预处理指令(#include/#define/#if等)、删…

20251023 正睿二十连测

B 时间:看了题解后花了 \(30\) 多分钟吧。给定 \(n\) 对数 \((a_i, b_i)\) 以及 \(T\) 组询问,每组询问给定 \((x, y)\),问有多少对给定的数能通过对 \((x, y)\) 进行若干次以下两种操作得到?\((x, y) \leftarrow …

1019:浮点数向零舍入(分正负取整)

【题目描述】 输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以使用强制类型转换来实现。 【输入】 一个单精度浮点数。 【输出】 一个整数,即向零舍入到…

创建 SQL Server 数据库【通用】

use master go-- 如果存在这个数据库名称 ,否则删除 if exists(select * from sysdatabases where name = MyFirstDB) drop database MyFirstDB-- 创建数据库 create database MyFirstDB on primary (name=MyFirstDB_…

HNSW算法实战:用分层图索引替换k-NN暴力搜索

向量检索是整个RAG管道的一个重要的步骤,传统的暴力最近邻搜索因为计算成本太高,扩展性差等无法应对大规模的搜索。 HNSW(Hierarchical Navigable Small World,分层可导航小世界图)提供了一种对数时间复杂度的近似…

日志分析-IIS日志分析

日志分析-IIS日志分析 1.phpstudy-2018站点日志.(.log文件)所在路径,提供绝对路径 按照下列步骤找到 flag{C:\inetpub\logs\LogFiles\W3SVC2}2.系统web日志中状态码为200请求的数量是多少 将日志爬下来传到linux中 在…

Spring Boot 自动配置之 TaskExecutor - 实践

Spring Boot 自动配置之 TaskExecutor - 实践2025-10-23 21:05 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

二分图/忆re.

rt: 本文分两部分二分图 忆re.part 1 二分图 定义 我会告诉你我OIwiki没看懂吗? 其实就是有一张图,将它的点分为红点和蓝点,红点只能和蓝点相连,同理蓝点只能和红点相连,满足这个条件的图就是二分图。 形式上的…

编程与数学 03-009 Linux 操作系统应用 22_Linux 故障排除与问题克服

编程与数学 03-009 Linux 操作系统应用 22_Linux 故障排除与问题克服pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

《IDEA 2025长效采用配置指南:有效期配置至2099年实战之JetBrains全家桶有效》​

《IDEA 2025长效采用配置指南:有效期配置至2099年实战之JetBrains全家桶有效》​pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

如何制作PDF文件目录? - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

todesk远程到被控Mac后能看到画面,鼠标键盘执行无反应

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Visual Studio 插件 - 喝水提醒 - 指南

Visual Studio 插件 - 喝水提醒 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

10/23

状态图状态图通常是对反应型对象建模 活动图 活动图展示的是流程*构件图构件图有标志 构件图展示的是构件之间的 组织和依赖供接口和需接口 部署图--对物理方面建模的方法 部署图对实施方面进行建模 立方体需求建模、…

玛哈特十一辊矫平机:把金属板送进“11 次节拍器” - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

JAVA 排序用法

目录背景和价值一、 Comparator 的基本用法二、 Java 8 之前(匿名内部类)三、 Java 8 之后(Lambda 表达式和方法引用)1. 使用 Lambda 表达式2. 使用静态工厂方法 Comparator.comparing()(推荐)3. 链式比较(多条…

esp32-usb-jtag 调试踩坑

背景 ESP 芯片通常使用 UART 实现串口,并可以通过外部 USB-UART 桥接芯片,连接到主机/PC 上的串口控制台仿真器。然而,在具有 USB 串行/JTAG 控制器的 ESP 芯片上,控制器的 CDC-ACM 部分即可实现串口,该串口直接连…