【Link】:http://codeforces.com/contest/831/problem/D

【Description】



有n个人,它们都要去一个终点,终点位于p;

但是,在去终点之前,他们都要先拿到一把钥匙;

钥匙散落在k个位置(k>=n)

然后告诉你n个人的起始位置;

然后每个人,每秒钟移动一个单位长度;

问你最少需要多长时间,可以使得,每个人都拿到钥匙,且都走到终点;

【Solution】



把初始位置a数组和钥匙位置b数组,都分别升序排;

假设有一个长度为n的窗口;

用这个窗口,一点一点在b数组上往右移动;

每次罩到的n个位置;

假设窗口上的第i个位置,罩到了数组上的第j个位置;

认为是第i个人走到第j把钥匙的地方,然后再到终点p

这样,按照人的位置和钥匙的位置顺序对应这一原则;

有k-n+1种窗口罩住数组的方法

枚举,得到最小的就好;

贪心



【NumberOf WA】



1



【Reviw】



常见的贪心策略。



【Code】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
#define Open() freopen("F:\\rush.txt","r",stdin)
#define Close() ios::sync_with_stdio(0) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 2100; int n,k;
LL a[N],b[N],p; int main(){
//Open();
//Close();
scanf("%d%d%lld",&n,&k,&p);
rep1(i,1,n) scanf("%lld",&a[i]);
sort(a+1,a+1+n);
rep1(i,1,k) scanf("%lld",&b[i]);
sort(b+1,b+1+k);
LL ans = 1e18;
rep1(i,1,k-n+1){
int delta = i-1;
LL ma = 0;
rep1(j,1,n)
ma = max(ma,abs(a[j]-b[j+delta])+abs(b[j+delta]-p));
ans = min(ans,ma);
}
printf("%lld\n",ans);
return 0;
}

【Codeforces Round #424 (Div. 2) D】Office Keys的更多相关文章

  1. 【Codeforces Round #424 (Div. 2) A】Unimodal Array

    [Link]:http://codeforces.com/contest/831/problem/A [Description] 让你判断一个数列是不是这样一个数列: 一开始是严格上升 然后开始全都是 ...

  2. 【Codeforces Round #424 (Div. 2) B】Keyboard Layouts

    [Link]:http://codeforces.com/contest/831/problem/B [Description] 两个键盘的字母的位置不一样; 数字键的位置一样; 告诉你第一个键盘按某 ...

  3. 【Codeforces Round #424 (Div. 2) C】Jury Marks

    [Link]:http://codeforces.com/contest/831/problem/C [Description] 有一个人参加一个比赛; 他一开始有一个初始分数x; 有k个评委要依次对 ...

  4. 【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers

    [链接]h在这里写链接 [题意] 定义bad list是一个非空的.最大公约数为1的序列.给定一个序列,有两种操作:花费x将一个元素删除.花费y将一个元素加1,问你将这个序列变为good list所需 ...

  5. 【Codeforces Round #420 (Div. 2) C】Okabe and Boxes

    [题目链接]:http://codeforces.com/contest/821/problem/C [题意] 给你2*n个操作; 包括把1..n中的某一个数压入栈顶,以及把栈顶元素弹出; 保证压入和 ...

  6. 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees

    [题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...

  7. 【Codeforces Round #420 (Div. 2) A】Okabe and Future Gadget Laboratory

    [题目链接]:http://codeforces.com/contest/821/problem/A [题意] 给你一个n*n的数组; 然后问你,是不是每个位置(x,y); 都能找到一个同一行的元素q ...

  8. 【Codeforces Round #423 (Div. 2) C】String Reconstruction

    [Link]:http://codeforces.com/contest/828/problem/C [Description] 让你猜一个字符串原来是什么; 你知道这个字符串的n个子串; 且知道第i ...

  9. 【Codeforces Round #423 (Div. 2) B】Black Square

    [Link]:http://codeforces.com/contest/828/problem/B [Description] 给你一个n*m的格子; 里面包含B和W两种颜色的格子; 让你在这个格子 ...

随机推荐

  1. Day 9 :初识函数

    Python函数:1.函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 2.函数能提高应用的模块性,和代码的重复利用率. Python提供了许多内建函数,比如print().但你也可 ...

  2. Nginx+win10安装配置

    一.前言 Nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx可以进行反向代理.负载均衡.HTTP服务器(动静分离).正向代 ...

  3. angularJS ng-model与wdatapicker问题记录

    代码: <input type="text" placeholder="开始日期" ng-model="data_start" onF ...

  4. pycharm连接数据库及相应操作

    1.连接数据库 2.pycharm中数据库的操作

  5. await和async

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 多版本JDK 切换

    由于一些原因,我本机存在3个版本的jdk. 但是发现,单纯去 修改环境变量,并没有效果. 那么我们下面看看怎么改 1 查看本机版本    java -version 2 查看jdk路径   where ...

  7. css---6 选择器声明的优先级

    选择器的特殊性由选择器本身的组件确定,特殊性值表述为4个部分,如 0,0,0,0一个选择器的具体特殊性如下确定: 1.对于选择器中给定的ID属性值,加 0,1,0,0 2.对于选择器中给定的各个类属性 ...

  8. JS预解析与变量提升

    预解析 JavaScript代码的执行是由浏览器中的JavaScript解析器来执行的.JavaScript解析器执行JavaScript代码的时候,分为两个过程:预解析过程和代码执行过程 预解析过程 ...

  9. kubernetes监控和性能分析工具:heapster+influxdb+grafana

    1.部署heapster 下载 heapster 相关 yaml 文件 [root@master dashboard]# wget https://raw.githubusercontent.com/ ...

  10. day23_5_练习_Calculator_使用正则表达式计算复杂表达式

    #!/usr/bin/env python# -*- coding:utf-8 -*-# ------------------------------------------------------- ...