当前位置: 首页 > article >正文

Max × Sum:(枚举,大根堆,滑动窗口)

问题陈述

给定长度为 NN 的序列: A=(A1,A2,…,AN)A=(A1​,A2​,…,AN​) 和 B=(B1,B2,…,BN)B=(B1​,B2​,…,BN​)。
设 SS 为大小为 KK 的 {1,2,…,N}{1,2,…,N} 的一个子集。 在这里,找到以下表达式的最小可能值:

(max⁡i∈SAi)×(∑i∈SBi).(i∈Smax​Ai​)×(i∈S∑​Bi​).

给定 TT 个测试用例;解决每一个。

约束条件

  • 1≤T≤2×1051≤T≤2×105
  • 1≤K≤N≤2×1051≤K≤N≤2×105
  • 1≤Ai,Bi≤1061≤Ai​,Bi​≤106
  • 所有测试用例中 NN 的总和最多为 2×1052×105。
  • 所有输入值均为整数。

输入

输入通过标准输入以以下格式给出。这里,caseicasei​ 表示第 ii 个测试用例。

TT
case1case1​
case2case2​
⋮⋮
caseTcaseT​

每个测试用例的格式如下:

NN KK
A1A1​ A2A2​ …… ANAN​
B1B1​ B2B2​ …… BNBN​

输出

打印 TT 行。第 ii 行应包含第 ii 个测试用例的答案。

示例 1

InputcopyOutputcopy
3
3 2
3 7 6
9 2 4
5 3
6 4 1 5 9
8 6 5 1 7
10 6
61 95 61 57 69 49 46 47 14 43
39 79 48 92 90 76 30 16 30 94
42
60
14579

在第一个测试用例中,对于 S={2,3}S={2,3},表达式的值为 7×(2+4)=427×(2+4)=42,这是最小值。

#include<bits/stdc++.h> 
#define int long long
using namespace std;
const int N=2e5+10;
struct ty {
	int a,b;
}s[N];
int n,k;
bool cmp(ty a,ty b){
	return a.a<b.a;
}
void solved(){
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>s[i].a;
	for(int i=1;i<=n;i++) cin>>s[i].b;
	sort(s+1,s+1+n,cmp);
	priority_queue<int> q;
	int sum=0,ans=0x3f3f3f3f3f3f3f3f;
	for(int i=1;i<=n;i++){
		if(i<=k){
			sum+=s[i].b;
			q.push(s[i].b);
		}
		else{
			if(q.top()>s[i].b){
				sum-=q.top();
				sum+=s[i].b;
				q.pop();
				q.push(s[i].b);
			}
		}
		if(i>=k) ans=min(sum*s[i].a,ans);
	}
	cout<<ans<<endl;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int t=1;
	cin>>t;
	while(t--){
		solved();
	}
}


http://www.kler.cn/a/402658.html

相关文章:

  • JS精进之Hoisting(提升)
  • 深入解析 EasyExcel 组件原理与应用
  • 图形化界面MySQL(MySQL)(超级详细)
  • Unity-添加世界坐标系辅助线
  • 09 —— Webpack搭建开发环境
  • 机器学习实战记录(1)
  • 自回归和Rectified Flow完美融合统一多模态理解和生成!DeepSeek北大等开源JanusFlow
  • Scala的Array习题
  • CSS3新特性——字体图标、2D、3D变换、过渡、动画、多列布局
  • 神经网络中常用的激活函数(公式 + 函数图像)
  • 【汇编语言】转移指令的原理(三) —— 汇编跳转指南:jcxz、loop与位移的深度解读
  • 【系统架构设计师】真题论文: 论企业架构管理与应用(包括解题思路和素材)
  • Spring Boot教程之三:Spring Boot 与 Spring MVC 及 Spring的区别
  • 【TTS】OuteTTS初体验
  • 企业微信中设置回调接口url以及验证 spring boot项目实现
  • 二叉树的练习题(下)
  • Python-简单病毒程序合集(一)
  • 《 C++ 点滴漫谈 一 》C++ 传奇:起源、演化与发展
  • 【大数据学习 | Spark】详解分区个数
  • Three.js 相机控制器Controls
  • Akts初识1.0
  • PuppyGraph:实时图查询引擎,无需ETL
  • 基于Java Springboot城市公交运营管理系统
  • 关于上架HarmonyOS元服务,ArkWeb问题
  • 题解 洛谷 Luogu P2440 木材加工 二分答案 C/C++
  • 有效的完全平方数