Codeforces Round 910 (Div. 2) D. Absolute Beauty

D. Absolute Beauty

有兩個長度為 n n n 的整數數組 a 1 , a 2 , … , a n a_1,a_2,\ldots,a_n a1?,a2?,,an? b 1 , b 2 , … , b n b_1,b_2,\ldots,b_n b1?,b2?,,bn? 。他將數組 b b b 的美麗值定義為

∑ i = 1 n ∣ a i ? b i ∣ . \sum_{i=1}^{n} |a_i - b_i|. i=1n?ai??bi?∣.
這里, ∣ x ∣ |x| x 表示 x x x 的絕對值。

最多可以進行一次以下操作

  • 選擇兩個索引 i i i j j j 1 ≤ i < j ≤ n 1 \leq i < j \leq n 1i<jn ),并交換 b i b_i bi? b j b_j bj? 的值。

幫助他找出數組 b b b 在進行一次交換后的最大美麗值。

思路:
我們將 a i a_i ai? b i b_i bi?看作一組線段的左右端點,容易發現,只有當兩段線段不相交時,我們可以將其對答案的貢獻變大,其貢獻為間隔距離的兩倍。所以我們維護最小右端點和最大左端點即可。

#include <bits/stdc++.h>using namespace std;
const int N = 1e6 + 5;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef array<ll, 3> p3;
int mod = 1e9 + 7;
const int maxv = 4e6 + 5;
// #define endl "\n"void solve()
{int n;cin>>n;vector<ll> a(n+5),b(n+5);for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>b[i];ll ans=0;ll minv=1e9,maxv=0;for(int i=1;i<=n;i++){ans+=abs(a[i]-b[i]);if(a[i]>b[i]) swap(a[i],b[i]);minv=min(minv,b[i]),maxv=max(maxv,a[i]);}if(minv<maxv) ans+=(maxv-minv)*2;cout<<ans<<endl;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;cin>>t;while (t--){solve();}system("pause");return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160641.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160641.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160641.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于材料生成算法優化概率神經網絡PNN的分類預測 - 附代碼

基于材料生成算法優化概率神經網絡PNN的分類預測 - 附代碼 文章目錄 基于材料生成算法優化概率神經網絡PNN的分類預測 - 附代碼1.PNN網絡概述2.變壓器故障診街系統相關背景2.1 模型建立 3.基于材料生成優化的PNN網絡5.測試結果6.參考文獻7.Matlab代碼 摘要&#xff1a;針對PNN神…

JDK命令使用總結

目錄 javacjava javac 將源碼(*.java)編譯成字節碼(*.class) javac HelloWorld.javajava 運行字節碼(*.class) 不能加后綴名 java HelloWorld直接運行單文件源碼(*.java) Java11以上才支持 java HelloWorld.java

ROSNS3(一)

https://github.com/malintha/rosns3 第一步&#xff1a;clone和構建rosns3客戶端 第二步&#xff1a;運行 最詳細的ubuntu 安裝 docker教程 - 知乎 1. unable to find source space /home/muta/src 解決方法&#xff1a; 將副將將碰到的bug&#xff0c;解決方法_#include &…

【C++ Primer Plus學習記錄】遞增運算符(++)和遞減運算符(--)

遞增運算符&#xff08;&#xff09;和遞減運算符&#xff08;--&#xff09;&#xff1a;前綴版本位于操作數前面&#xff0c;如x&#xff1b;后綴版本位于操作數后面&#xff0c;如x。兩個版本對操作數的影響是一樣的&#xff0c;但是影響的時間不同。這就像吃飯前買單和吃飯…

Python從零開始快速搭建一個語音對話機器人

文章目錄 01-初心緣由02-準備工作03-語音機器人的搭建思路04-語音生成音頻文件05-音頻文件轉文字STT06-與圖靈機器人對話07-文字轉語音08-語音對話機器人的完整代碼09-結束語10-有問必答關于Python技術儲備一、Python所有方向的學習路線二、Python基礎學習視頻三、精品Python學…

SSH連接遠程服務器報錯:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 解決方法

一.錯誤描述 報錯信息里提示了路徑信息/root/.ssh/known_hosts:20 二.解決方案 方法一 輸入以下指令&#xff1a; ssh-keygen -R XXX&#xff08;需要連接遠程服務器的ip&#xff09; 按照我的例子ip:10.165.7.136&#xff0c;會返回以下信息: 重新嘗試連接&#xff1a; 輸…

C++學習 --set

目錄 1&#xff0c; 什么是set 2&#xff0c; 創建set 2-1&#xff0c; 標準數據類型 2-2&#xff0c; 自定義數據類型 2-3&#xff0c; 其他創建方式 3&#xff0c; 操作set 3-1&#xff0c; 賦值 3-2&#xff0c; 添加元素&#xff08;insert&#xff09; 3-2-1&…

MySQL的樂觀鎖和悲觀鎖

1、樂觀鎖&#xff1a; 樂觀鎖在操作數據的時候&#xff0c;是保持一種樂觀的狀態&#xff0c;認為別的線程是不會同時修改數據的&#xff0c;所以是不會上鎖的&#xff0c;但是在更新的時候&#xff0c;會判斷一下在這個期間內是否有別的線程修改過數據。 主要的流程&#x…

規劃類3d全景線上云展館幫助企業輕松拓展海外市場

科技3D線上云展館作為一種基于VR虛擬現實和互聯網技術的新一代展覽平臺。可以在線上虛擬空間中模擬真實的展館&#xff0c;讓觀眾無需親自到場&#xff0c;即可獲得沉浸式的參觀體驗。通過這個展館&#xff0c;您可以充分、全面、立體展示您的產品、服務以及各種創意作品&#…

python運算符重載之成員關系和屬性運算

1 python運算符重載之成員關系和屬性運算 1.1 重載成員關系運算符 1.1.1 contains,iter,getitem python使用成員關系運算符in時&#xff0c; 按優先級調用方法&#xff1a;contains>iter>getitem&#xff1b; class MyIters:def __init__(self,value):self.datavalu…

2023年【安全生產監管人員】考試題及安全生產監管人員找解析

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 安全生產監管人員考試題參考答案及安全生產監管人員考試試題解析是安全生產模擬考試一點通題庫老師及安全生產監管人員操作證已考過的學員匯總&#xff0c;相對有效幫助安全生產監管人員找解析學員順利通過考試。 1、…

【樹莓派】Camera Module 使用

工具 RPI4RPI Camera Module 2 硬件安裝 直接插到板子的相機帶子插口上即可 使用前提 libcamera-hello運行這個命令能夠成功&#xff0c;否則需要裝相應的包 在 RPI4 上測試 libcamera-jpeg -o 00001.jpg -t 2000 --width 640 --height 480t 表示程序運行&#xff08;預…

SA8255 Q+A android 登錄QNX

需要工具busybox 130|gen4_gvm:/ # cd /data/ gen4_gvm:/data # ./busybox telnet 192.168.1.1Entering character mode Escape character is ^].QNX Neutrino (localhost) (ttyp0)login: root No home directory. Logging in with home "/". # 用戶名&#xff1a…

數據結構-棧的實現

1.棧的概念及結構 棧&#xff1a;一種特殊的線性表&#xff0c;其只允許在固定的一端進行插入和刪除元素操作。進行數據插入和刪除操作的一端稱為棧頂&#xff0c;另一端稱為棧底。棧中的數據元素遵守后進先出LIFO&#xff08;Last In First Out&#xff09;的原則。 壓棧&…

Matlab群體智能優化算法之海象優化算法(WO)

文章目錄 一、靈感來源二、算法的初始化三、GTO的數學模型Phase1&#xff1a;危險信號和安全信號Phase2&#xff1a;遷移&#xff08;探索&#xff09;Phase3&#xff1a;繁殖&#xff08;開發&#xff09; 四、流程圖五、偽代碼六、算法復雜度七、WO搜索示意圖八、實驗分析和結…

FreeRTOS列表和列表項

FreeRTOS內核調度使用了大量的列表&#xff08;list&#xff09;和列表項&#xff08;listitem&#xff09;數據結構。它的源碼中涉及到很多列表的操作&#xff0c;對于FreeRTOS來說&#xff0c;列表就是它最基礎的一部分&#xff0c;列表被用作FreeRTOS調度器使用&#xff0c;…

力扣.面試題 04.06. 后繼者(java 樹的中序遍歷)

Problem: 面試題 04.06. 后繼者 文章目錄 題目描述思路解題方法復雜度Code 題目描述 設計一個算法&#xff0c;找出二叉搜索樹中指定節點的“下一個”節點&#xff08;也即中序后繼&#xff09;。 如果指定節點沒有對應的“下一個”節點&#xff0c;則返回null。 思路 由于題…

lombok @Slf4j注解啥作用

Logger logger Logger.getLogger(Test.class); logger.debug("這是一個調試信息"); logger.info("這是一個info信息");log4j 使用分兩步 第一步&#xff1a;private final Logger logger LoggerFactory.getLogger(當前類名.class); 第二步&#xff1a;記…

Python開發運維:Celery連接Redis

目錄 一、理論 1.Celery 二、實驗 1.Windows11安裝Redis 2.Python3.8環境中配置Celery 三、問題 1.Celery命令報錯 2.執行Celery命令報錯 3.Win11啟動Celery報ValueErro錯誤 一、理論 1.Celery (1) 概念 Celery是一個基于python開發的分布式系統&#xff0c;它是簡單…