CF830A Office Keys

【题目链接】CF830A Office Keys

【题目类型】贪心

&题意:

有n个人,k个钥匙,一个目的地,求让n个人都回到目的地的最短时间,每个人都要拿钥匙才能回目的地

&题解:

这题做的时候没有认真想样例,如果仔细想的话就能发现n个人选的n个钥匙一定是连续的(在排过序之后),你可以这样想:

如果n个人直接去目的地,那么就肯定是连续的区间了吧,如果这个区间里钥匙数够,就可以直接回去了,如果不够,肯定是在区间的两边寻找剩下的钥匙,所以一定是连续的区间

&代码:

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define ll long long
#define fo(i,a,b) for(int i=(a);i<=(b);i++)
#define fd(i,a,b) for(int i=(a);i>=(b);i--)
#define cle(a,v) memset(a,(v),sizeof(a))
const int maxn = 2e3 + 7;
int n, m, q;
int a[maxn], b[maxn];
int main() {
#ifndef ONLINE_JUDGE
freopen("E:1.in", "r", stdin);
#endif
scanf("%d%d%d", &n, &m, &q);
fo(i, 0, n - 1) scanf("%d", &a[i]);
fo(i, 0, m - 1) scanf("%d", &b[i]);
sort(b, b + m);
sort(a, a + n);
int ans = 0x7fffffff;
for(int i = 0; i <= m - n; i++) {
int ma = 0;
for(int j = 0; j < n; j++) {
ma = max(ma, abs(a[j] - b[i + j]) + abs(b[i + j] - q));
}
ans = min(ans, ma);
}
printf("%d\n", ans);
return 0;
}

最新文章

  1. [LeetCode] Path Sum II 二叉树路径之和之二
  2. IOS开发基础知识--碎片47
  3. java分享第二天(变量及命名规范)
  4. 理解 JavaScript Scoping &amp; Hoisting(二)
  5. MM1排队系统
  6. JAVA调用易信接口向指定好友推送消息(一)背景需求
  7. 关于Linux vi命令 vi命令一览表
  8. android 安卓 微信布局 [1]
  9. 十七、Hadoop学记笔记————Hbase入门
  10. HTML/overflow的认识
  11. 软工网络16个人作业2——WordCount
  12. 【前端】JS文本比较插件
  13. 大数据Web可视化分析系统开发
  14. avalon2学习教程01
  15. sql 整理积累
  16. 虚拟机virtualBox安装linux系统 xshell远程连接linux
  17. 20145206邹京儒 web安全基础实践
  18. ASP.NET中上传图片检测其是否为真实的图片 防范病毒上传至服务器
  19. Java 基础标识符
  20. 004---Python基本数据类型--元祖

热门文章

  1. Codeforces 1009G Allowed Letters 最大流转最小割 sosdp
  2. 2018-2019-1 20189201 《LInux内核原理与分析》第七周作业
  3. JavaScript(一)
  4. centos7中安装pg数据库
  5. angular.isArray()
  6. document.querySelectorAll() 兼容 IE6
  7. 《Linux内核原理与分析》第一周作业 20189210
  8. DEV中右键菜单如何只在非空单元格上显示?
  9. css样式兼容各个浏览器时的部分总结
  10. spring-boot+mybatisPlus+shiro的集成demo 我用了5天