首页 > 其他分享 >abc376E Max x Sum

abc376E Max x Sum

时间:2024-10-20 14:00:01浏览次数:6  
标签:std pq int Max Sum cin abc376E ord sum

有序列A[N]和B[N],选出一组大小为K的下标,让A[i]的最大值乘以(B[i]之和)的结果最小,求最小值。
1<=T<=2E5, 1<=K<=N<=2E5, 1<=A[i],B[i]<=1E6

分析:因为A[i]跟B[i]要同步选,因此对下标排序,然后枚举每个A[i]作为最大值,从B[i]中选出最小的K个求和,得到结果,B[i]之和可以用堆来维护。

#include <bits/stdc++.h>
using i64 = long long;

void solve() {
	int N, K;
	std::cin >> N >> K;
	std::vector<int> A(N), B(N);
	for (int i = 0; i < N; i++) {
		std::cin >> A[i];
	}
	for (int i = 0; i < N; i++) {
		std::cin >> B[i];
	}

	std::vector<int> ord(N);
	std::iota(ord.begin(), ord.end(), 0);
	std::sort(ord.begin(), ord.end(),
		[&](int i, int j) {
			return A[i] < A[j];
		});

	i64 ans = 1E18;
	i64 sum = 0;
	std::priority_queue<int> pq;
	for (auto i : ord) {
		sum += B[i];
		pq.push(B[i]);
		while (pq.size() > K) {
			sum -= pq.top();
			pq.pop();
		}
		if (pq.size() == K) {
			ans = std::min(ans, A[i] * sum);
		}
	}
	std::cout << ans << "\n";
}

int main() {
	std::cin.tie(0)->sync_with_stdio(0);
	int t = 1;
	std::cin >> t;
	while (t--) solve();
	return 0;
}

标签:std,pq,int,Max,Sum,cin,abc376E,ord,sum
From: https://www.cnblogs.com/chenfy27/p/18487220

相关文章

  • [ABC376E] Max × Sum 题解
    [ABC376E]Max×Sum题解原题链接洛谷链接一道简单的推性质题,首先明确一个性质,子集是非连续的,所以在计算时并不用连续区间求。拿过题来,首先想的是枚举\(B\)的最小子集,但其复杂度为\(O(C_N^K)\)复杂度过高,不足以通过本题。于是转变思路,枚举\(A\)之中的最大值。若\(a_i......
  • Maxwell学习笔记-入门了解
    目前,学习Maxwell已经两个月了,简单分享一下我的学习经验吧。(首次写博客,页面有些过于简洁,以后再学习怎么美化网页页面)1.软件安装首先是软件安装,Ansys的官网有免费的学生版,如果你还是在校生的话,千万不要错过这个机会。Ansys学生版|免费学生软件下载 在这个页面里往下滑,看重了......
  • 线性可分支持向量机的原理推导【补充知识部分】9-10最大化函数max α,β L(x,α,β)关
    本文是将文章《线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。在主文章中,有一个部分是关于补充拉格朗日对偶性的相关知识,此公式即为这部分里的内容。公式9-10是基于公式9-9的进一步引申,它通过引入拉格朗日乘子,将约束优化问......
  • 时延求和(Delay-and-Sum, DAS)波束形成器
    目录1.问题描述2.DAS波束形成3.DAS波束响应与波束图1.问题描述假设存在一个声源以及由N个阵元组成的麦克风阵列,且声源到各个阵元的传播信道只会引入时延与衰减,即......
  • 3dsMax:3dsMax基础操作与界面介绍_2024-07-15_15-24-33.Tex
    3dsMax:3dsMax基础操作与界面介绍一、3dsMax简介1.13dsMax的历史与发展3dsMax,原名3DStudioMax,是由Autodesk公司开发的一款基于PC的三维动画渲染和建模软件。它的历史可以追溯到1990年代初,当时由YostGroup开发的3DStudio系列软件在DOS平台上首次亮相,随后在Window......
  • 3dsMax:材质与贴图应用教程_2024-07-15_15-57-33.Tex
    3dsMax:材质与贴图应用教程3dsMax:材质与贴图应用材质基础材质编辑器的介绍与使用在3dsMax中,材质编辑器(MaterialEditor)是创建和编辑材质的核心工具。它提供了丰富的选项,帮助艺术家为模型赋予真实感和细节。材质编辑器通常位于3dsMax界面的右下角,可以通过点击“显......
  • 3dsMax:产品设计与展示技巧_2024-07-15_17-50-57.Tex
    3dsMax:产品设计与展示技巧产品设计基础3dsMax界面介绍在开始使用3dsMax进行产品设计之前,熟悉其界面是至关重要的。3dsMax的界面主要由以下几个部分组成:菜单栏:位于界面顶部,提供各种命令和功能的访问入口。工具栏:紧邻菜单栏下方,包含常用的工具和命令按钮。视图区:界面中......
  • C - sum(牛客小白月赛102)
    题目链接:C-sum题目描述:示例说明:解:这题典型的贪心问题,是求最小的操作次数。首先我们可以先算出这n个数的和s,s和sum的大小有三种情况。当s=sum时,一个数字也不用修改,答案为0。而剩下的两种情况可以合为一种情况来做。首先我们要知道如果把这n个数都变为相反数,则s也会变为......
  • [学习笔记] Minimax 算法和 Alpha-Beta 剪枝
    题目引入在博弈论中,有这样一类题目:两个玩家A、B轮流行动,A先手,B后手。有一个结果,A想要使它最大,B想要使它最小。Minimax算法把每个状态作为一个点,每个转移作为一条边建出一棵树。这棵树好像叫博弈树。两种实现(都没有真正地建树):直接搜索(可能有结点被重复经过)记忆化......
  • Softmax函数计算详解
    Softmax函数计算详解Softmax函数的组成部分:输入示例输出概率分布参考Softmax函数的组成部分:σ(z⃗......