【贪心+二分查找】Office Keys CodeForces
来源:互联网 发布:通达信解禁日期提前知 编辑:程序博客网 时间:2024/06/07 12:07
Think:
1知识点:贪心+二分查找
2题意:n个人初始出发位置,m把钥匙放置位置,办公室位置p,询问在所有人取到钥匙之后到达办公室的最短时间
3反思:
1>初始忘记排序
2>最初选择的贪心策略无法得到全局最优解
4解题方法:
二分枚举逼近可能的最短时间,然后试探当前选择的时间是否可以满足所有人取到钥匙后到达办公室
vjudge题目链接
可参考博客
以下为Accepted代码
#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;typedef long long LL;const int N = 1014;const int M = 2014;int n, m, p, a[N], b[M];bool Check(LL ans);int main(){ while(~scanf("%d %d %d", &n, &m, &p)){ for(int i = 0; i < n; i++) scanf("%d", &a[i]); for(int i = 0; i < m; i++) scanf("%d", &b[i]); sort(a, a+n); sort(b, b+m); LL l = 0, r = 2e9, mid, ans; 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;}bool Check(LL ans){ int i, pos = -1; for(i = 0; i < n; i++){ while(pos < m){ pos++; if(abs(a[i]-b[pos])+abs(b[pos]-p) <= ans) break; } if(pos >= m) return false; } return true;}
阅读全文
1 0
- 【贪心+二分查找】Office Keys CodeForces
- Codeforces 831D Office Keys 二分+贪心
- Codeforces Round #424 -(二分&贪心)||dp-D. Office Keys
- cf 830A Office Keys 【二分+贪心】
- 【二分+贪心】Codeforces830A[Office Keys]题解
- Codeforces Round #424 (Div. 2) D. Office Keys(贪心 二分 or DP)
- Codeforces 831D Office Keys【Dp/二分】
- Codeforces 831D Office Keys【二分 】
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)D. Office Keys(二分+贪心)
- Codeforces D. Office Keys 贪心(待证)
- Codeforces 831D Office Keys 贪心or dp
- Codeforces Round #424 D. Office Keys(二分)
- [二分][杂题] Codeforces Round #424 .A Office Keys
- Codeforces 831D Office Keys(思维or二分)
- CodeForces 831D Office Keys
- Codeforces 831 D Office Keys
- codeforces 831D Office Keys
- 【CodeForces 830A】Office Keys
- vim使用技巧
- NP
- 软件测试概述
- 救济金发放UVa133
- maven错误:dependency cannot have character [children]
- 【贪心+二分查找】Office Keys CodeForces
- CRON表达式基础
- python及常用库numpy、scipy、matplotlib安装与卸载-Windows环境
- tomcat集群实现源码级别剖析
- 修改之前的多条commit提交记录
- 二叉搜索树
- Spring事务管理中@Transactional的propagation参数(转)
- 35 个 Java 代码性能优化总结
- laravel 异步消息队列