UVa - 1616 - Caravan Robbers
来源:互联网 发布:h5多人联网游戏源码 编辑:程序博客网 时间:2024/05/16 13:54
二分找到最大长度,最后输出的时候转化成分数,比较有技巧性。
AC代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <cctype>#include <cstring>#include <string>#include <sstream>#include <vector>#include <set>#include <map>#include <algorithm>#include <stack>#include <queue>#include <bitset> #include <cassert> #include <cmath>#include <functional>using namespace std;const int maxn = 100005;const double eps = 1e-10;typedef pair<int, int> Pair;vector<Pair> interval;int n;double ret;void cal(){double l = 0, r = 1000000, mid;ret = 0;for (int it = 0; it < 100; it++) {mid = (l + r) / 2; // 二分double left = 0;bool ok = true;for (int i = 0; i < n && ok; i++) {if (interval[i].first > left) {left = interval[i].first;}if (left + mid > interval[i].second) {ok = false;}left += mid;}if (ok) {l = mid;ret = mid;}else {r = mid;}}}int main(){ios::sync_with_stdio(false);while (cin >> n) {interval.clear();int x, y;for (int i = 0; i < n; i++) {cin >> x >> y;interval.push_back(make_pair(x, y));}sort(interval.begin(), interval.end()); // 按照左端点排序,从小到大cal(); // 计算最优方案// 计算分数形式int rp = 0, rq = 1;for (int p, q = 1; q <= n; q++) {p = round(ret * q);if (fabs((double)p / q - ret) < fabs((double)rp / rq - ret)) {rp = p;rq = q;}}cout << rp << "/" << rq << endl;}return 0;}
0 0
- UVa 1616 Caravan Robbers
- UVa - 1616 - Caravan Robbers
- UVA 1616 - Caravan Robbers
- UVA 1616 Caravan Robbers
- UVA 1616 Caravan Robbers(二分+贪心)
- UVa 1616 Caravan Robbers (二分)
- Caravan Robbers UVA
- UVA - 1616 Caravan Robbers 二分+暴力转换
- UVA 1616 Caravan Robbers 【二分+贪心+枚举分母】
- UVA 1616 Caravan Robbers(二分 + 小数变分数)
- (解题报告) Uva 1616 Caravan Robbers (商队抢劫者)(上凸包+队列+结构体)
- NEERC2012 Caravan Robbers
- UVA 361 Cops and Robbers
- UVa 361 - Cops and Robbers
- 习题8-14 商队抢劫者(Caravan Robbers ACMICPC NEERC 2012 UVa1616)
- Robbers
- UVA 361 Cops and Robbers(凸包应用)
- UVA 361 || Cops and Robbers (点是否在凸包内
- 自娱自乐--爬虫java实践
- velocity基本的语法
- CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
- 北大百炼1005 I Think I Need a Houseboat题解
- VC6.0实现打开文件与打开文件夹选项
- UVa - 1616 - Caravan Robbers
- 实习收获之软件思想误区的纠正
- 用友ERP T6技术解析(六) 库龄分析
- Oracle 11g启动不了:Out Of Memory
- java选择排序法
- 【Windows编程】系列第三篇:文本字符输出
- 微软100题第46题:四对括号可以有多少种匹配排列方式?
- php调用face++ API使用
- 北大百炼1006 Biorhythms 题解