NOIP2015 TG D2T1 stone
2016-02-15 19:37
197 查看
这道题目很简单,就是非常之明显的二分答案。题意要求的石头间最短的间隔最大,就是最小值最大。
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int l, n, m, d[50005]; bool check(int value) { int now = 0, ans = 0; for(int i = 1; i <= n; i++) if(d[i] - now >= value) { ans++; now = d[i]; } if(l - now < value) ans--; if(ans >= n - m) return 1; else return 0; } int main() { freopen("stone.in", "r", stdin); freopen("stone.out", "w", stdout); scanf("%d%d%d", &l, &n, &m); for(int i = 1; i <= n; i++) scanf("%d", &d[i]); int ll = 0, r = l + 1; while(ll < r) { int mid = (ll + r) / 2 + 1; if(check(mid)) ll = mid; else r = mid - 1; } printf("%d", ll); }
相关文章推荐
- 无向树的直径(最长的两点间最短距离)
- iOS应用分发与内测(二)
- 概率论与数理统计复习
- USACO US OPEN 2015 BRONZE 三四题 C++翻译代码
- 对质数的判断
- US 2015 Febrary BRONZE 题解
- 时间复杂度分析在信息学竞赛中的应用
- TopCoder Srm671 一二题翻译及题解
- SPFA最短路算法解析
- NOIP复赛的一些注意事项
- FloodFill算法的优化
- 洛谷11月月赛总结
- Dijkestra算法的理解与相应的优化
- 10.24南海NOIP模拟测解题报告
- Sparse Table算法 - RMQ问题的简单高效算法
- POJ 2342 Anniversary Party题解 - 树形DP入门题目
- IPEOI1 1-4题解题报告
- 一条sql语句分别统计出来两张表的数据
- Maze
- Tour-Guide解题报告 - 哈密尔顿环问题