题目描述 Description###

\(Bzeroth\) 大陆最终还是覆灭了,所以你需要为地灾军团服务了。

地灾军团军师黑袍不擅长写题面,所以你只需要看简化版的题意即可。

给定 \(3\) 个长度均为 \(N\) 的正整数序列 \(A\) 、\(B\) 、\(C\) ,要求从三个序列中分别取出 \(3\) 个数 \(A_i\) 、\(B_j\) 、\(C_k\) ,使得 \(| C_k - B_j | + | C_k - A_i | + | B_j - A_i |\) 最小。

输入描述 Input Description###

第一行一个正整数 \(N\) 。

第二行 \(N\) 个正整数,第 i 个数为 \(A_i\) 。

第三行 \(N\) 个正整数,第 i 个数为 \(B_i\) 。

第四行 \(N\) 个正整数,第 i 个数为 \(C_i\) 。

输出描述 Output Description###

输出\(| C_k - B_j | + | C_k - A_i | + | B_j - A_i |\) 的最小值。

样例输入 Sample Input###

3
170 180 190
195 185 175
180 160 200

样例输出 Sample Output###

10

数据范围及提示 Data Size & Hint###

$ n \leq 152501 $

之前的一些废话###

题解###

先对\(A,B,C\) 数组排序,然后枚举\(A\) 中的元素,很显然当\(B,C\) 数组中的数与\(A_i\) 相差最小时答案最小,所以我们二分出\(B\) ,\(C\) 数组中\(A_i\) 的位置,然后算一算更新答案即可。

代码###

#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
#define mem(a,b) memset(a,b,sizeof(a))
inline int read()
{
int x=0,f=1;char c=getchar();
while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
while(isdigit(c)){x=x*10+c-'0';c=getchar();}
return x*f;
}
const int maxn=152510,oo=2147483647;
int n,A[maxn],B[maxn],C[maxn];
LL ans=oo;
bool judge(int k){return k>=0 && k<n;}
int main()
{
n=read();
for(int i=0;i<n;i++)A[i]=read();
for(int i=0;i<n;i++)B[i]=read();
for(int i=0;i<n;i++)C[i]=read();
sort(A,A+n);sort(B,B+n);sort(C,C+n);
for(int i=0;i<n;i++)
{
int Br=lower_bound(B,B+n,A[i])-B,Bl=-1;
if(Br>0)Bl=Br-1;
int Cr=lower_bound(C,C+n,A[i])-C,Cl=-1;
if(Cr>0)Cl=Cr-1;
if(judge(Br) && judge(Cr))ans=min(ans,(LL)abs(A[i]-B[Br])+(LL)abs(A[i]-C[Cr])+(LL)abs(B[Br]-C[Cr]));
if(judge(Br) && judge(Cl))ans=min(ans,(LL)abs(A[i]-B[Br])+(LL)abs(A[i]-C[Cl])+(LL)abs(B[Br]-C[Cl]));
if(judge(Bl) && judge(Cr))ans=min(ans,(LL)abs(A[i]-B[Bl])+(LL)abs(A[i]-C[Cr])+(LL)abs(B[Bl]-C[Cr]));
if(judge(Bl) && judge(Cl))ans=min(ans,(LL)abs(A[i]-B[Bl])+(LL)abs(A[i]-C[Cl])+(LL)abs(B[Bl]-C[Cl]));
}
printf("%lld",ans);
return 0;
}

总结###

NOIP模拟赛 最佳组合的更多相关文章

  1. CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

    A.数三角形 题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛D ...

  2. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  3. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  4. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  5. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  6. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  7. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  8. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  9. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

随机推荐

  1. acwing 2 零一背包问题

    地址 https://www.acwing.com/problem/content/description/2/ 题目描述有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品 ...

  2. acwing 23. 矩阵中的路径

    习题地址 https://www.acwing.com/problem/content/description/21/ 题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路 ...

  3. 11.web5

    先补充点小知识: 关于jjencode 和  aaencode(颜文字) 1.什么是jjencode? 将JS代码转换成只有符号的字符串 2.什么是aaencode? 将JS代码转换成常用的网络表情 ...

  4. Vue 知识点个人总结

    Vue 脚手架 脚手架 3 的版本 ---- webpack 4 cnpm install -g @vue/cli-----全局安装组件 vue create myapp-----命令行创建项目 或者 ...

  5. 在Ubuntu环境下配置Proxmark3(PM3)使用环境

    参考资料:PM3官方Wiki 因为国内网络上大多是在Kali系统上使用PM3的教程(链接1.链接2.链接3),而这些教程的步骤对于Ubuntu系统并不完全适用.所以写下本文,记录我个人的安装经历. 本 ...

  6. webdriver浏览器版本驱动对应以及下载

    对于webdriver和各个浏览器的版本的对应,我最近发现浏览器驱动的对应在selenium库的源码里都有提及,路径是:python>site-packages>selenium>w ...

  7. Appium+java ---- Intellij IDEA +genymotion安装配置

    引用文章:https://www.cnblogs.com/kaola8023/p/8442686.html Intellij IDEA 中配置Android SDK File-Project Stru ...

  8. Django中的response

    render_to_response render_to_response('index.html', locals(),context_instance=RequestContext(request ...

  9. org.springframework.util.Base64Utils线程安全问题

    Spring提供的org.springframework.util.Base64Utils类,先会检测JDK里是否自带java.util.Base64,如果不带,则使用的是apache提供的org.a ...

  10. .net 数据源DataSet 转换成模型

    /// <summary> /// DataSet转换成model 自动赋值返回集合 /// </summary> /// <typeparam name="T ...