【习题 8-14 UVA - 1616】Caravan Robbers
2024-09-02 00:34:43
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
二分长度。
显然长度越长。就越不可能。
二分的时候。可以不用管精度。
直接指定一个二分次数的上限就好。
判断长度是否可行。直接用贪心就好。
->贪心(排序区间,尽量让新的区间右端点靠左一点。以便后面的区间有放的地方。
最后得到小数。
=>暴力枚举分母i是什么。
然后进行类似一个迭代!?的过程。
如果round(ans*i)/i和ans的差的绝对值更小。则更新分母、分子。
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5;
int n;
pair<double,double> a[N+10];
bool ok(double len){
double now = a[1].first + len;
for (int i = 2;i <= n;i++){
if (a[i].first<now){
if (now+len>a[i].second) return false;
now = now + len;
}else{
//a[i].first>=now
if (a[i].first+len>a[i].second) return false;
now = a[i].first+len;
}
}
return true;
}
int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
while (cin >> n){
for (int i = 1;i <= n;i++) cin >> a[i].first>>a[i].second;
sort(a+1,a+1+n);
double l = 1,r = a[1].second-a[1].first,temp = -1;
for (int i = 1;i <= 200;i++){
double mid = (l+r)/2.0;
if (ok(mid)){
temp = mid;
l = mid;
}else r = mid;
}
ll pfenzi = 0,pfenmu = 1;
for (int i = 1;i <= 100000;i++){
ll fenzi = round(i*temp);
if ( abs((double)fenzi/(1.0*i)-temp) <abs((double)pfenzi/(1.0*pfenmu) - temp)){
pfenzi = fenzi;
pfenmu = i;
}
}
cout <<pfenzi<<"/"<<pfenmu<<endl;
}
return 0;
}
最新文章
- Collection
- Hibernate配置log4j日志环境
- 【UWP】批量修改图标尺寸
- CAShapeLayer(持续更新)
- PHP Static Self 的区别
- EditText 属性
- python中隐式的内存共享
- 删除 GPT 保护分区
- UNITY 打包安卓APK
- ubuntu14.04中安装QuartusII9.1步骤
- Hdu3498-whosyourdaddy(精确覆盖模板题)
- 使用karma+jasmine做单元测试
- JSP连接MySQL时老是遇到驱动错误怎么办?
- web.py模块使用
- 精读Hadamard Response论文
- (1)HTML的组成(什么是标签、指令、转义字符、数据、标签字符表)
- 负载均衡下 tomcat session 共享
- Redis4.0新特性之-大KEY删除
- 利用JS实现图片的缓存
- jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告[留存]
热门文章
- 把qtdesigner中的ui文件生成py文件 anaconda
- BZOJ 4241 历史研究(分块)
- 转载 :Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码
- 同门不同类—创新Aurvana Live2/Air简评(附随身视听设备心路历程)
- PatentTips - Virtualizing performance counters
- [9]EC_屏蔽ecshop云提示no_license
- 七牛用户搭建c# sdk的图文讲解
- 理解FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH
- Rapidjson的简单使用示例
- js阻止默认事件与js阻止事件冒泡