BZOJ 1857: [Scoi2010]传送带
二次联通门 : BZOJ 1857: [Scoi2010]传送带
/*
BZOJ 1857: [Scoi2010]传送带 三分套三分 可能是吧。。dalao们都说明显是一个单峰函数
可是我证不出来。。
三分第一个线段,和第二个线段
*/
#include <cstdio>
#include <iostream>
#include <cmath>
#include <cstdlib>
#define EPS 1e-3
int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
#define flo double
int P, Q, R;
flo D (flo x, flo y, flo _x, flo _y)
{
return sqrt ((x - _x) * (x - _x) + (y - _y) * (y - _y));
}
flo abs (flo a) { return a < ? -a : a; }
flo Cal (flo Lx, flo Ly)
{
flo lx = Cx, ly = Cy, rx = Dx, ry = Dy, Mx1, My1, Mx2, My2, r1, r2;
for (; abs (rx - lx) > EPS || abs (ry - ly) > EPS; )
{
Mx1 = lx + (rx - lx) / , My1 = ly + (ry - ly) / ;
Mx2 = rx - (rx - lx) / , My2 = ry - (ry - ly) / ;
r1 = D (Lx, Ly, Mx1, My1) / R + D (Mx1, My1, Dx, Dy) / Q;
r2 = D (Lx, Ly, Mx2, My2) / R + D (Mx2, My2, Dx, Dy) / Q;
if (r1 > r2) lx = Mx1, ly = My1;
else rx = Mx2, ry = My2;
}
return D (Ax, Ay, Lx, Ly) / P + D (Lx, Ly, lx, ly) / R + D (lx, ly, Dx, Dy) / Q;
} int Main ()
{
scanf ("%d%d%d%d%d%d%d%d", &Ax, &Ay, &Bx, &By, &Cx, &Cy, &Dx, &Dy);
scanf ("%d%d%d", &P, &Q, &R);
flo lx = Ax, ly = Ay, rx = Bx, ry = By, Mx1, My1, Mx2, My2;
for (; abs (ry - ly) > EPS || abs (rx - lx) > EPS; )
{
Mx1 = lx + (rx - lx) / , My1 = ly + (ry - ly) / ;
Mx2 = rx - (rx - lx) / , My2 = ry - (ry - ly) / ;
if (Cal (Mx1, My1) > Cal (Mx2, My2)) lx = Mx1, ly = My1;
else rx = Mx2, ry = My2;
}
printf ("%.2lf", Cal (lx, ly));
return ;
} int ZlycerQan = Main ();
int main (int argc, char *argv[]) {;}
BZOJ 1857: [Scoi2010]传送带的更多相关文章
- bzoj 1857: [Scoi2010]传送带 三分
题目链接 1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 934 Solved: 501[Submit][Stat ...
- Bzoj 1857: [Scoi2010]传送带(三分套三分)
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段 ...
- BZOJ 1857: [Scoi2010]传送带(三分套三分)
Time Limit: 1 Sec Memory Limit: 64 MB Submit: 2549 Solved: 1370 [Submit][Status][Discuss] Descriptio ...
- 【BZOJ】1857: [Scoi2010]传送带(三分)
http://www.lydsy.com/JudgeOnline/problem.php?id=1857 好神奇的三分.. 第一次写三分啊sad..看了题解啊题解QAQ 首先发现无论怎么走一定是在AB ...
- BZOJ 2131 [scoi2010] 传送带
@(BZOJ)[三分法] Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段. 两条传送带分别为线段AB和线段CD. lxhgww在AB上的移动速度为P,在CD上的移 ...
- 2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段 ...
- [BZOJ 1857] 传送带
Link: BZOJ 1857 传送门 Solution: 首先中间的两个拐点$C,D$肯定都在传送带$A,B$上 接下来感性发现固定点A/C,另一个点C/D时间随位置的变化为单峰函数 这样就是三分套 ...
- P2571 [SCOI2010]传送带
P2571 [SCOI2010]传送带 三分套三分. 前提条件:P3382 [模板]三分法 三分,求区间内单峰函数的最大/最小值. 我们把两条线段都跑三分,先ab后cd,求出最小值. 可以直接将二维坐 ...
- [SCOI2010]传送带 三分法
[SCOI2010]传送带 LG传送门 三分法模板. 关于为什么可以三分,我选择感性理解,有人证明了,总之我是懒得证了. 假设路径是\(A \to E \to F \to D\),\(E\)和\(F\ ...
随机推荐
- Luogu4233 射命丸文的笔记 DP、多项式求逆
传送门 注意到总共有\(\frac{n!}{n}\)条本质不同的哈密顿回路,每一条哈密顿回路恰好会出现在\(2^{\binom{n}{2} - n}\)个图中,所以我们实际上要算的是强连通有向竞赛图的 ...
- Eclipse 安装反编译插件 Eclipse Class Decompiler
Eclipse Class Decompiler在线安装方法 https://blog.csdn.net/tangjinquan1157/article/details/77506015 Eclips ...
- sql group by hour 按小时分组统计
Time字段以小时分组统计 select datepart(hour,time) hour,count(1) count from table where Similarity<75 group ...
- 【转载】C#中List集合使用Exists方法判断是否存在符合条件的元素对象
在C#的List集合操作中,有时候需要根据条件判断List集合中是否存在符合条件的元素对象,此时就可以使用List集合的扩展方法Exists方法来实现,Exists方法的签名为bool Exists( ...
- Navicat Premium12激活教程
如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 先到官网下载Navicat,然后安装(怎么安装就不阐述了). 然后,到Github上下载作者发 ...
- 开发环境wamp3.06 + Zend studio 12 调试配置
<?php $fileName = "php大师.test.php"; //补充程序,显示文件名(不包括扩展名) $start = strrpos($fileName, &q ...
- 反射,内置方法,__str__ __repr__
反射 反射用到的mmp模块 def wahaha():print('wahaha') class QQxing: def __init__(self,name): self.name = name d ...
- QT5无法定位程序输入点 于动态链接库QtCore5.dll的解决
本人新手刚接触QT5,今天在写程序时,在QtCreator中可以运行,但是单独运行.exe文件时报错 之后发现是因为我之前在path路径中添加了MinGw,导致里面也有Qt库.但是我编译的时候用的是安 ...
- Redis一主二从Sentinel监控配置
本文基于Redis单实例安装安装.https://gper.club/articles/7e7e7f7ff7g5egc4g6b 开启哨兵模式,至少需要3个Sentinel实例(奇数个,否则无法选举Le ...
- python处理yml
#pip install pyyamlimport yaml #yaml文件转成字典 with open('a.yml','rb')as f: res = yaml.load(f,Loader=yam ...