Codeforces Round 920 (Div. 3)

D. Very Different Array(贪心+双指针/前缀和)

 思路:绝对值就是线段-->让线段最长(肯定是越在最短端找最右端的 越最右端找最左端的)-->判断怎么连哪段最长(采用双指针的策略去判断)

(左红-右黄)>(右红-左黄)

   l1++ r2--             r1--  l2++

 

#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll a[N],b[N];
int main()
{int t;cin>>t;while(t--){int n,m;cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>b[i];sort(a+1,a+1+n);sort(b+1,b+1+m);int l1=1,r1=n,l2=1,r2=m;ll sum=0;while(l1<=r1){ll num1=abs(a[l1]-b[r2]);ll num2=abs(a[r1]-b[l2]);if(num1<=num2){r1--;l2++;sum+=num2;}else{r2--;l1++;sum+=num1;}}cout<<sum<<endl;}return 0;
}

绝对值|A-B|=max(A-B,-A+B)

所有在n个数中肯定有贡献取正的 有贡献取负的 那么就尽可能让大的取正 让小的取负 b数组与之相反 至于选几个数为正 几个数为负 就暴力枚举找最大

#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll a[N],b[N];
ll sa[N],sb[N];
int main()
{int t;cin>>t;while(t--){int n,m;cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>b[i];sort(a+1,a+1+n);sort(b+1,b+1+m);for(int i=1;i<=n;i++) sa[i]=sa[i-1]+a[i];for(int i=1;i<=m;i++) sb[i]=sb[i-1]+b[i];ll sum=0;for(int k=0;k<=n;k++){ll num1=sa[n]-sa[n-k]-sa[n-k];//k个数取正 n-k个数取负ll num2=sb[m]-sb[m-(n-k)]-sb[k];//k个数取负 n-k个数取正sum=max(sum,num1+num2);}cout<<sum<<endl;}return 0;
}

 

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

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

相关文章

Swift Combine 通过用户输入更新声明式 UI 从入门到精通十五

Combine 系列 Swift Combine 从入门到精通一Swift Combine 发布者订阅者操作者 从入门到精通二Swift Combine 管道 从入门到精通三Swift Combine 发布者publisher的生命周期 从入门到精通四Swift Combine 操作符operations和Subjects发布者的生命周期 从入门到精通五Swift Com…

uniapp前端手机获取安全区域css值 防止按键不能被点击

引入 再编写小程序和移动端的时候可能会出现这种情况&#xff0c;页面中的按键刚好才手机中按不到的位置 如下 这是苹果手机的home按键 如果刚好我们的按钮再这个位置,用户是点击不到的 我们就需要一个办法,能够自动的让我们的按键移动到安全可点击的区域 解决 我们可以使用…

第四篇:SQL语法-DDL-数据定义语言

大年初一限定篇&#x1f600; &#xff08;祝广大IT学习者、工作者0 error 0 warning&#xff01;&#xff09; DDL英文全称是Data Definition Language&#xff08;数据定义语言&#xff09;&#xff0c;用来定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象 …

PHP毕业设计图片分享网站76t17

图片分享网站主要是为了提高工作人员的工作效率和更方便快捷的满足用户&#xff0c;更好存储所有数据信息及快速方便的检索功能&#xff0c;对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性&#xff0c;遵循开发的系统优化的原则&#xff0c;…

oppo手机QQ上传文件所在位置

一、打开手机“文件管理”APP 点击“点击查看”&#xff0c;按钮&#xff0c;会进入到新的根目录。 寻找下面的目录进入

《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)

文章目录 5.1 跨链交易分析5.1.1 基础知识5.1.2 重点案例&#xff1a;分析以太坊到 BSC 的跨链交易理论步骤和工具准备Python 代码示例构思步骤1: 设置环境和获取合约信息步骤2: 分析以太坊上的锁定交易步骤3: 跟踪BSC上的铸币交易 结论 5.1.3 拓展案例 1&#xff1a;使用 Pyth…

返回输入字中BIT=1的位个数(博途SCL代码)

返回输入字中BIT1的位个数有很多实际意义&#xff0c;比如我们可以统计同一时间外部的呼叫请求总数、电梯同一时间有多少个请求呼叫等。这里编程我们用到了博途的覆盖指令AT,有关AT指令的其他用法可以参看下面文章链接&#xff1a; https://rxxw-control.blog.csdn.net/articl…

VS Code之Java代码重构和源代码操作

文章目录 支持的代码操作列表调用重构分配变量字段和局部变量的差别Assign statement to new local variable在有参构造函数中将参数指定成一个新的字段 将匿名类转换为嵌套类什么是匿名类&#xff1f;匿名类转换为嵌套类的完整演示 转换为Lambda表达式Lambda 表达式是什么?转…

每日一题(最大连续1的个数,完全数计算)

485. 最大连续 1 的个数 - 力扣&#xff08;LeetCode&#xff09; #include <stdio.h> int findMaxConsecutiveOnes(int* nums, int numsSize) { if (numsSize 0) return 0; // 如果数组为空&#xff0c;返回0 int maxCount 0; // 最大连续1的个数 int currentCo…

C#利用接口实现选择不同的语种

目录 一、涉及到的知识点 1.接口定义 2.接口具有的特征 3.接口通过类继承来实现 4.有效使用接口进行组件编程 5.Encoding.GetBytes(String)方法 &#xff08;1&#xff09;检查给定字符串中是否包含中文字符 &#xff08;2&#xff09;编码和还原前后 6.Encoding.GetS…

地缘政治紧张局势加剧网络战策略的兴起

在某种程度上&#xff0c;网络安全疲劳和自满情绪留下了漏洞&#xff0c;威胁行为者利用旧的漏洞&#xff0c;包括日志记录和修补方面的漏洞&#xff0c;在网络中取得了坚定的滩头阵地。即使是最老练的威胁行为者&#xff0c;也经常选择扫描未修补的漏洞和其他基本配置弱点来渗…

七、Mybatis缓存

缓存就是内存中的数据&#xff0c;常常来自对数据库查询结果的保存&#xff0c;使用缓存、可以避免频繁的与数据库进行交互&#xff0c;进而提高响应速度一级缓存是sqlSession级别的缓存&#xff0c;在操作数据库时需要构造sqlsession对象&#xff0c;在对象中有一个数据结构&a…