三分套三分,虽然简单,但是也得掌握,,,

时间复杂度$O(log_{1.5}^2 n)$

一开始WA好几次发现是快速读入里没有return,这样也能过样例?_(:3J∠)_

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const double eps = 1e-3;
int in() {
int k = 0, fh = 1; char c = getchar();
for(; c < '0' || c > '9'; c = getchar())
if (c == '-') fh = -1;
for(; c >= '0' && c <= '9'; c = getchar())
k = (k << 3) + (k << 1) + c - '0';
return k * fh;
} double p, q, r;
struct Point {
double x, y;
} A1, A2, B1, B2; double sqr(double x) {return x * x;} double dis(Point A, Point B) {return sqrt(sqr(A.x - B.x) + sqr(A.y - B.y));} double cal(Point B) {
double c1, c2;
Point P1 = B1, P2 = B2, x1, x2;
while (fabs(P1.x - P2.x) > eps || fabs(P1.y - P2.y) > eps) {
x1 = (Point) {P1.x + (P2.x - P1.x) / 3, P1.y + (P2.y - P1.y) / 3};
x2 = (Point) {P1.x + (P2.x - P1.x) * 2 / 3, P1.y + (P2.y - P1.y) * 2 / 3};
c1 = dis(B, x1) / r + dis(x1, B2) / q, c2 = dis(B, x2) / r + dis(x2, B2) / q;
if (c1 < c2) P2 = x2;
else P1 = x1;
} return dis(B, P1) / r + dis(P1, B2) / q;
} int main() {
A1.x = in(); A1.y = in(); A2.x = in(); A2.y = in();
B1.x = in(); B1.y = in(); B2.x = in(); B2.y = in();
p = in(); q = in(); r = in(); double c1, c2;
Point P1 = A1, P2 = A2, x1, x2;
while (fabs(P1.x - P2.x) > eps || fabs(P1.y - P2.y) > eps) {
x1 = (Point) {P1.x + (P2.x - P1.x) / 3, P1.y + (P2.y - P1.y) / 3};
x2 = (Point) {P1.x + (P2.x - P1.x) * 2 / 3, P1.y + (P2.y - P1.y) * 2 / 3};
c1 = dis(A1, x1) / p + cal(x1), c2 = dis(A1, x2) / p + cal(x2);
if (c1 < c2) P2 = x2;
else P1 = x1;
} printf("%.2lf\n", dis(A1, P1) / p + cal(P1));
return 0;
}

期末考试Bless All!

【BZOJ 1857】【SCOI 2010】传送带的更多相关文章

  1. [SCOI 2010]传送带

    Description 题库链接 在一个 \(2\) 维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段 \(AB\) 和线段 \(CD\) .在 \(AB\) 上的移动速度为 ...

  2. [BZOJ 1857] 传送带

    Link: BZOJ 1857 传送门 Solution: 首先中间的两个拐点$C,D$肯定都在传送带$A,B$上 接下来感性发现固定点A/C,另一个点C/D时间随位置的变化为单峰函数 这样就是三分套 ...

  3. BZOJ 1857: [Scoi2010]传送带

    二次联通门 : BZOJ 1857: [Scoi2010]传送带 /* BZOJ 1857: [Scoi2010]传送带 三分套三分 可能是吧..dalao们都说明显是一个单峰函数 可是我证不出来.. ...

  4. [BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆)

    [BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆) 题面 给出一个长度为n的序列,选k段长度在L到R之间的区间,一个区间的值等于区间内所有元素之的和,使得k个区间的值之和最大.区 ...

  5. SCOI 2010 连续攻击游戏(贪心,图论)

    SCOI 2010 连续攻击游戏 solution 直接就硬刚 我愿称贪心为暴力 因为题目中要求一定从小到大贪心,那么当前点的下标有能够选取的较大点,那么它一定可以和前面的一个较小点连接,所以可以直接 ...

  6. bzoj 1857: [Scoi2010]传送带 三分

    题目链接 1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 934  Solved: 501[Submit][Stat ...

  7. Bzoj 1857: [Scoi2010]传送带(三分套三分)

    1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段 ...

  8. BZOJ 1857 传送带 (三分套三分)

    在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...

  9. 【SCOI 2010】传送带

    为了方便,我们不妨设$\rm P \lt Q,R$ 我们发现,有$\rm E$点在$\rm AB$上,$\rm F$点在$\rm CD$上,最优解一定是$\rm AE\rightarrow EF\ri ...

随机推荐

  1. 第18章 图元文件_18.1 老式图元文件格式(wmf)

    18.1 老式图元文件格式(wmf) (1)创建图元文件:HDC hdcMeta = CreateMetaFile(lpszFile); ①如果lpszFile为NULL则图元文件存储在内存中,如果指 ...

  2. quad 和 plane 区别是什么?

    Quad就是两个三角形组成四边形,Plane会有很多三角形,哦也 貌似Quad拖上去后看不见,很薄的感觉

  3. J2EE中关于tomcat的maxIdle、maxActive、maxActive相关配置

    一.基本概念 1 maxActive 连接池的最大数据库连接数.设为0表示无限制,一般把maxActive设置成可能的并发量就行了 2 maxIdle 最大的空闲连接数 3 maxWait 最大建立连 ...

  4. [No00004F]史上最全Vim快捷键键位图(入门到进阶)

    史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版        下 ...

  5. poj2676 Sudoku

    Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17953   Accepted: 8688   Special ...

  6. 为什么xcode7请求不成功

    1.现在有的工程因为升级xcode7不能进行请求数据,新特性要求App内访问的网络必须使用HTTPS协议.但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全.现在也不能马上改成HTT ...

  7. mvc5权限管理(简单登录):ActionFilterAttribute

    效果图: 1.控制器 public ActionResult Index() { return View(); } [HttpPost] public ActionResult Index(User ...

  8. FFT入门

    这篇文章会讲讲FFT的原理和代码. 先贴picks博客(又名FFT从入门到精通):http://picks.logdown.com/posts/177631-fast-fourier-transfor ...

  9. swift 定时器的使用

    在swift中,要使用定时器就需要用到对象NSTimer.通过NSTimer的实例化后,就可以调用fire方法来启用了. NSTimer有2个构造函数 init(timeInterval ti: NS ...

  10. 如何把Json格式字符写进text文件中

    本篇一步一步学习怎样把显示于网页的json格式的字符串写进text文件中,并保存起来.学习到创建model, Entity, 序列化List<object>转换为json,显示于网页上.然 ...