Codeforces D. Office Keys 贪心(待证)
来源:互联网 发布:面试问hash算法 编辑:程序博客网 时间:2024/06/07 09:05
传送门:D. Office Keys
题意:有n个人和k个钥匙在同一个坐标轴上,所有人都要去同一个点,但在这之前他们必须到某个有钥匙的点去拿到钥匙,每个钥匙只能被一个人拿,问所有人都到达目的地的最短时间是多少。
正解:将人和钥匙的位置分别排序,然后从第一个点开始让每个人分别拿对应的钥匙,再从第二个点开始。。。一直到第n-k个点结束。
我是看了dalao的代码,但是并不明白为什么这么贪心的选择就是对的,自己感觉要证明的话要分好几种情况讨论,知道策略去证明都不会更别说自己想出来这种贪心策略了,感觉自己越来越弱了。。
代码:
#include<bits/stdc++.h>using namespace std;#define ll long longint a[2020],b[2020];int main(){ int n,k,p; cin>>n>>k>>p; for(int i=0;i<n;i++) cin>>a[i]; for(int j=0;j<k;j++) cin>>b[j]; sort(a,a+n); sort(b,b+k); ll ans=INT_MAX; for(int i=0;i+n-1<k;i++) { ll tmp=0; for(int j=0,x=i;j<n;j++,x++) { tmp=max(tmp,abs(0ll+a[j]-b[x])+abs(0ll+b[x]-p)); } ans=min(ans,tmp); } cout<<ans;}
阅读全文
0 0
- Codeforces D. Office Keys 贪心(待证)
- Codeforces 831D Office Keys 二分+贪心
- Codeforces Round #424 -(二分&贪心)||dp-D. Office Keys
- Codeforces 831D Office Keys 贪心or dp
- Codeforces Round #424 (Div. 2) D. Office Keys(贪心 二分 or DP)
- CodeForces 831D Office Keys
- Codeforces 831 D Office Keys
- codeforces 831D Office Keys
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)D. Office Keys(二分+贪心)
- Codeforces Round #424 D. Office Keys(二分)
- Codeforces Round #424 (Div. 2) D. Office Keys(dp)
- 【贪心+二分查找】Office Keys CodeForces
- codeforces 831 D Office Keys(dp)
- Codeforces 831D Office Keys【Dp/二分】
- Codeforces #831D: Office Keys 题解
- Codeforces 831D Office Keys【二分 】
- Codeforces Round #424 (Div. 2) D. Office Keys
- Codeforces 831D Office Keys(思维or二分)
- Hibernate中Session提供的get()与load()方法
- .Net框架的ado.Net实体对象模型初步使用
- android 6.0权限申请
- leetcode-121
- uicollection卡动
- Codeforces D. Office Keys 贪心(待证)
- Mybatis # 与$区别
- rocketmq启动mqnamesrv报错解决
- iOS最新面试锦集
- 挑战练习:定制toast消息(一)(《Android编程权威指南》的)
- LoadRunner提高篇——结果分析实践
- UVA10462_Is There A Second Way Left? _kruskal的次小生成树
- Surface Pro 3 的 USB 和蓝牙设备无法使用的处理方法
- Java.3面向对象继承