CodeForces 595C
2016-05-30 10:30
169 查看
题意:一个战士和一个箭士PK,战士是近战,他要距离箭士的尽可能近,而箭士是远战,他要距离战士尽可能远。现在,他们有n个位置,但是要去掉(n-2)个位置,从战士开始,每人轮流去掉一个位置,求如何去掉点,使他们的距离最优,输出最优距离。
题解:战士要使距离更近,应该是优先去掉边缘上的点,反之,箭士要使距离更远,应该尽可能去掉中间的位置;
战士想要使得两个位置尽可能近,而这两个位置的下标距离,再小也不能小于n/2;箭士想要使得两个位置尽可能远,而这两个位置的下标距离,再大也不能超过n/2。结合他们的小标距离,最优的应该是小标距离刚好为n/2;战士可以决定的是;选取小标距离为n/2中的最小距离。
题解:战士要使距离更近,应该是优先去掉边缘上的点,反之,箭士要使距离更远,应该尽可能去掉中间的位置;
战士想要使得两个位置尽可能近,而这两个位置的下标距离,再小也不能小于n/2;箭士想要使得两个位置尽可能远,而这两个位置的下标距离,再大也不能超过n/2。结合他们的小标距离,最优的应该是小标距离刚好为n/2;战士可以决定的是;选取小标距离为n/2中的最小距离。
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; int a[200005]; #define INF 0x3f3f3f3f int main() { int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); int ans=INF; int dis=n/2; sort(a,a+n); for(int i=dis;i<n;i++) ans=min(ans,a[i]-a[i-dis]); printf("%d\n", ans); return 0; }
相关文章推荐
- Git SSH Key 生成步骤
- windows和linux下的文件路径表示小结
- "巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现)解题思路
- 4. Median of Two Sorted Arrays
- 数组部分元素反转--三次翻转法
- typedef的用法
- 网站常用效果
- ROS与智能机器人技术发展路径探索
- hdu 3986 Harry Potter and the Final Battle(最短路变形)
- PHP 模糊搜索
- ajax库类以及使用方法
- 文件编码及UTF-8、BOM、0XFEFF相关问题
- iOS之 FBMemoryProfiler FB的循环引用检测工具
- hdu 2841(容斥原理+状态压缩)
- fragement生命周期
- liunx 编程常用命令(expand,grep ,find )
- oracle-序列 ora-02287 此处不允许序号
- Vim杂记:Sublime的配色方案
- tomcat启动异常:IOException while loading persisted sessions: java.io.EOFExceptio 4000 n
- MVC+EF+Oracle运行时 “System.ArgumentException”异常