每日一题学习笔记

embedded/2024/10/18 18:17:13/

问题描述

为了修复黄金律法,MaverickFW 收集了传说中的武器和传说中的魔法。MaverickFW 的武器槽和魔法槽都有 N 个,但是在战斗中同时切换武器和魔法太痛苦了。为了简化操作,MaverickFW 决定重新排列 N 个武器或者魔法使得冲突最小。我们设定每个武器都有一个属性值 w,每个魔法有一个属性值 m,冲突定义为 ∑i=1n(w×m)。

输入格式

输入第 1 行包含一个正整数 T,表示测试数据的组数。

对于每一组数据,第 1 行包含一个正整数 n,表示武器槽和魔法槽的数量。

第 2 行包含 n 个整数 wi​,表示所有武器属性值。

第 3 行包含 n 个整数 mi​,表示所有魔法属性值。

输出格式

对于每组测试数据,输出一行一个整数,表示重新排列后最小的冲突值。

输入样例

1

5

1 2 3 4 5

5 4 3 2 1

输出样例

35

#include <iostream>  
#include <algorithm>  
using namespace std;  const int N = 1e5; // 数组的最大可能长度  int main() {  int T; // 测试用例的数量  cin >> T;  for (int k = 0; k < T; k++) {  int n; // 当前测试用例中数组的长度  cin >> n;  int a[N], b[N]; // 定义两个数组  for (int i = 0; i < n; i++) {  cin >> a[i];  }  for (int i = 0; i < n; i++) {  cin >> b[i];  }  sort(a, a + n); // 对数组a进行升序排序  sort(b, b + n); // 对数组b也进行升序排序,但我们将在后面“反向”使用它  long long sum = 0; // 用于存储乘积和的变量  for (int j = 0; j < n; j++) {  // 数组a的第j个元素与数组b的第j个元素相乘(但由于b是升序的,我们实际上想要的是b的降序版本中的第j个元素,  // 所以这里直接取b[n-j-1]就实现了“虚拟”的降序处理)  // 但为了保持代码的直观性,并且因为我们已经知道要对b进行这样的处理,所以这里还是写b[j],  // 但在解释时指出我们实际上是如何“反向”使用b的。  // 注意:为了真正最小化乘积和,我们应该直接写b[n-j-1],如下一行所示。  sum += a[j] * b[n - j - 1]; // 正确的做法,使用b的“降序”版本中的元素  }  cout << sum << endl; // 输出最小乘积和  }  return 0;  
}

这道题的做法是用贪心去找每一次相乘得到的最小值,使用让一个数组的最大值和另一个数组的最小值相乘,这样相对而言每次都能得到一个最小的值,最后的和一定就是最小的


http://www.ppmy.cn/embedded/127228.html

相关文章

OmniPlan Pro for Mac 项目管理流程软件安装教程【保姆级教程,简单小白轻松上手】

Mac分享吧 文章目录 OmniPlan Pro 项目管理流程软件 安装完成&#xff0c;软件打开效果一、Mac中安装OmniPlan Pro 项目管理流程软件——v4.91️⃣&#xff1a;下载软件2️⃣&#xff1a;安装软件&#xff0c;将安装包从左侧拖入右侧文件夹中&#xff0c;并等待安装完成3️⃣&…

【60天备战2024年11月软考高级系统架构设计师——第40天:性能优化与高可用设计(总结)】

性能优化和高可用性是现代云架构设计的核心目标。通过合理的策略和设计模式&#xff0c;架构师可以确保系统在高负载情况下仍能快速响应&#xff0c;并且在故障情况下保持服务的持续可用性。理解这些原则和策略&#xff0c;对于构建高性能、高可用的云应用至关重要。 关键策略…

如何解决 Open /etc/postfix/main.cf: Permission denied ?

最近我的 Postfix 邮件系统无法发送电子邮件&#xff0c;报错内容&#xff1a;Open /etc/postfix/main.cf: Permission denied 经过一番调查&#xff0c;我能够解决这个问题。 日志文件中发现的错误如下&#xff1a; Jun 27 12:51:02 tecadmin postfix/postfix-script[11764]…

基于SpringBoot+Vue+Uniapp的仓库点单小程序的详细设计和实现

2. 详细视频演示 文章底部名片&#xff0c;联系我获取更详细的演示视频 3. 论文参考 4. 项目运行截图 代码运行效果图 代码运行效果图 代码运行效果图 代码运行效果图代码运行效果图 代码运行效果图 5. 技术框架 5.1 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发…

CUDA编程技巧(不断搜集更新)

1 使用位运算替换部分乘法或除法 位移操作主要适用于无符号整数&#xff0c;对于带符号数的位移&#xff0c;特别是负数&#xff0c;可能会导致问题&#xff0c;如果你需要对负数执行除法或者乘法&#xff0c;最好谨慎使用位移运算。 1.1 替换除法 当需要将一个数除以 2、4、…

[Python]将pdf文件转为svg

一、简介 本文介绍了如何使用 python代码将.pdf转为.svg。 二、代码 1. 安装 fitz (PyMuPDF) 库 pip install PyMuPDF2. 编写python代码转换文件 import fitz # PyMuPDF 库 import osdef pdf_to_svg(pdf_path, output_folder):# 打开 PDF 文件pdf_document fitz.open(pd…

虚幻引擎GAS入门学习笔记(一)

虚幻引擎GAS入门(一) Gameplay Ability System&#xff08;GAS&#xff09; 是一个模块化且强大的框架&#xff0c;用于管理虚幻引擎中的游戏玩法逻辑。它的核心组成部分包括 Gameplay Ability&#xff08;定义和执行能力&#xff09;、Gameplay Effect&#xff08;应用和管理…

基于Raspberry Pi人脸识别自动门

人脸识别自动门 简介 在当今数字化时代&#xff0c;智能家居安全变得越来越重要。今天&#xff0c;我要向大家介绍一个结合了安全性与便利性的项目——人脸识别自动门。这个项目通过在门上实施基于面部识别的高级安全系统&#xff0c;使用摄像头验证房主的面部&#xff0c;自…