参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html

(1)直接二分答案。说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解。

但是想了很久没想出来, 后来看了博客发现因为显然答案是单调的, 可以用二分来做。

看到最大, 最小, 可以考虑答案是否单调, 单调考虑用二分

(2)然后是小数化分数, 其实一开始我想模拟分数, 然后发现很麻烦, 之后博客里的方法技巧性很强。

其实这个方法默认了分母是在1到n之间的, 而好像题目并没有给出这个条件。这个其实就是枚举所有

与ans接近的分数, 选最近的。

(3)这道题目的精度太恐怖了, 第一是1e-9, 第二是我为了保险最后ans取得是最后的(l+r)/2。

但是wa,  改成ans=l就过了……

#include<cstdio>
#include<cmath>
#include<queue>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; const int MAXN = 112345;
const double EPS = 1e-9;
struct node
{
int l, r;
bool operator < (const node& x) const
{
return l < x.l;
}
}a[MAXN];
int n; bool judge(double key)
{
double start = 0;
REP(i, 0, n)
{
if(start < a[i].l) start = a[i].l;
if(start + key > a[i].r) return false;
start += key;
}
return true;
} int main()
{
while(~scanf("%d", &n))
{
REP(i, 0, n) scanf("%d%d", &a[i].l, &a[i].r);
sort(a, a + n); double l = 0, r = 1e6;
while(r - l > EPS)
{
double m = (l + r) / 2.0;
if(judge(m)) l = m;
else r = m;
} double ans = l;
int ansp = 0, ansq = 1;
REP(q, 1, n + 1)
{
int p = round(ans * q);
if(fabs((double)p / q - ans) < fabs((double)ansp / ansq - ans))
ansp = p, ansq = q;
}
printf("%d/%d\n", ansp, ansq);
} return 0;
}

最新文章

  1. Java 清除数组相同元素
  2. mysql启动失败:不能创建pid文件
  3. Gate level Simulation(门级仿真)
  4. mvc+mysql+EF
  5. javascript获取iframe框架中页面document对象,获取子页面里面的内容,iframe获取父页面的元素,
  6. ASP.NET学习笔记1—— MVC
  7. openfire+asmack搭建的安卓即时通讯(一) 15.4.7
  8. ABAP Enhancement:第二部分
  9. DP之矩阵连乘问题
  10. Subset leetcode java
  11. 安装 SQL Server 2008 R2 的硬件和软件要求(转)
  12. Cocos2dx 3.0 过渡篇(三十)灰机还是3D好(Sprite3D)
  13. Oracle免费的便捷Web应用开发框架
  14. MVC 缓存1
  15. SQL远程恢复
  16. STM32驱动TEA5767收音机模块
  17. babel-polyfill的几种使用方式
  18. Linux安装JSON-C
  19. Hackergame 2018的一道题目confused_flxg失败心得体会
  20. configure: error: cannot guess build type; you must specify one解决方法

热门文章

  1. Mysql 分库分表方案
  2. BZOJ 5180 [Baltic2016]Cities(斯坦纳树)
  3. 论文阅读《ActiveStereoNet:End-to-End Self-Supervised Learning for Active Stereo Systems》
  4. Python学习————字符串相关操作
  5. zoj 3471 Most Powerful(状压dp+Tsp问题+连续性问题)
  6. STM32 USB转串口驱动安装不成功出现黄色感叹号解决方法!
  7. CSS隐藏overflow默认滚动条同时保留滚动效果
  8. MyBatis学习总结(18)——MyBatis与Hibernate区别
  9. UVA 12507 Kingdoms
  10. dubbo知识点理解