Codeforces Round #424 (Div. 2) D. Office Keys
来源:互联网 发布:github mac客户端下载 编辑:程序博客网 时间:2024/05/24 01:44
题目链接:Office Keys
题目大意:有一条直线上有一些客户和钥匙,然后有一个终点,然后每个客户至少捡到一把钥匙再到终点,一把钥匙只能一个人用,现在所有的客户都拿到了一把钥匙并且到了终点,这些所有客户里面时间有一个最大值,现在要求你使得这个最大值最小,问这个最小值是多少
题目思路:我们可以知道最后的钥匙和客户位置一定是同样递增的,那么这时候我们只需要取尽量左边的位置就好了,这时候我们就可以二分这个最小值,看是不是有n个客户的时间都比这个值小,然后做贪心check就好了
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 2010;ll n,k,p,a[maxn],b[maxn],vis[maxn];bool check(ll mid){ ll cnt = 0; memset(vis,false,sizeof(vis)); for(int i = 1;i <= n;i++){ for(int j = 1;j <= k;j++){ if(vis[j]) continue; if(abs(a[i]-b[j])+abs(b[j]-p) <= mid){ vis[j] = true; cnt++; break; } } } if(cnt == n) return true; return false;}int main(){ scanf("%lld%lld%lld",&n,&k,&p); for(int i = 1;i <= n;i++) scanf("%lld",&a[i]); for(int j = 1;j <= k;j++) scanf("%lld",&b[j]); sort(a+1,a+n+1); sort(b+1,b+k+1); ll l = 0,r = 2e10+5,ans,mid; while(l <= r){ mid = l+r>>1; if(check(mid)) ans = mid,r = mid-1; else l = mid+1; } printf("%lld\n",ans); return 0;}
阅读全文
0 0
- Codeforces Round #424 (Div. 2) D. Office Keys
- Codeforces Round #424 (Div. 2) D. Office Keys(dp)
- Codeforces Round #424 (Div. 2) Problem D. Office Keys
- Codeforces Round #424 (Div. 2) D. Office Keys(贪心 二分 or DP)
- CF Round #424( Div.2) D. Office Keys
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)D. Office Keys(二分+贪心)
- Codeforces Round #424 (Div. 2)C. Jury Marks 暴力 D. Office Keys 二分 E. Cards Sorting 树状数组
- Codeforces Round #424 D. Office Keys(二分)
- Codeforces Round #424 -(二分&贪心)||dp-D. Office Keys
- CF Round #424( Div.2) D. Office Keys 【二分||DP】
- CodeForces 831D Office Keys
- Codeforces 831 D Office Keys
- codeforces 831D Office Keys
- [二分][杂题] Codeforces Round #424 .A Office Keys
- Codeforces 831D Office Keys 二分+贪心
- codeforces 831 D Office Keys(dp)
- Codeforces 831D Office Keys【Dp/二分】
- Codeforces #831D: Office Keys 题解
- 上海找工作之旅
- Unity UI模块优化(1.原理)
- 【Linux】fork函数的理解
- 计算机的构造与解释(1)
- setContentView方法
- Codeforces Round #424 (Div. 2) D. Office Keys
- 练习题(队列)
- MyBatis 多对多完成版
- MyBatis多对多及一二级缓存
- PAT1019~~~
- hdu个人赛6—1009
- AngularJS小案例_简易音乐播放器
- 从github下载某个git库的4种方法
- 2.5总结