zoukankan      html  css  js  c++  java
  • 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 < 0 ? -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) / 3, My1 = ly + (ry - ly) / 3;
            Mx2 = rx - (rx - lx) / 3, My2 = ry - (ry - ly) / 3;
            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) / 3, My1 = ly + (ry - ly) / 3;
            Mx2 = rx - (rx - lx) / 3, My2 = ry - (ry - ly) / 3;
            if (Cal (Mx1, My1) > Cal (Mx2, My2)) lx = Mx1, ly = My1;
            else rx = Mx2, ry = My2;
        }
        printf ("%.2lf", Cal (lx, ly));
        return 0;
    }
    
    int ZlycerQan = Main ();
    int main (int argc, char *argv[]) {;}
  • 相关阅读:
    Android Studio如何设置代码自动提示
    Java中Map的用法详解
    Android 管理Activity中的fragments
    Android
    WebApp之Meta标签
    iOS中为网站添加图标到主屏幕以及增加启动画面
    HTML5添加 video 视频标签后仍然无法播放的解决方法 IIS添加MIEI类型
    WebApp之 apple-touch-icon
    Eclipse编辑器基本设置
    Redis监控方案
  • 原文地址:https://www.cnblogs.com/ZlycerQan/p/7485627.html
Copyright © 2011-2022 走看看