zoukankan      html  css  js  c++  java
  • hdu 3400 Line belt (三分套三分)

    题目链接:hdu 3400 Line belt 

    题意:

    在二维平面上给你两条线段AB,CD,线段上的速度分别是v1,v2,在线段外的速度为v3.

    问从A到D最短的时间需要多少。

    题解:

    三分AB上的一个点,三分CD上的一个点。

    即三分套三分。

     1 #include<bits/stdc++.h>
     2 #define F(i,a,b) for(int i=(a);i<=(b);++i)
     3 using namespace std;
     4 typedef long long ll;
     5 typedef pair<double,double>P;
     6 int t;
     7 double v1,v2,v3;
     8 P a[4];
     9 
    10 double dis(P a,P b){return sqrt(pow(a.first-b.first,2)+pow(a.second-b.second,2));}
    11 
    12 double check2(P x,P y){return dis(x,y)/v3+dis(y,a[0])/v1+dis(x,a[3])/v2;}
    13 
    14 double sanfen2(P x)
    15 {
    16     P l=a[2],r=a[3],mid,mmid;
    17     F(i,1,100)
    18     {
    19         mid=P((l.first+r.first)/2,(l.second+r.second)/2);
    20         mmid=P((mid.first+r.first)/2,(mid.second+r.second)/2);
    21         if(check2(mid,x)>check2(mmid,x))l=mid;
    22         else r=mmid;
    23     }
    24     return check2(l,x);
    25 }
    26 
    27 double check(P x){return sanfen2(x);}
    28 
    29 double sanfen()
    30 {
    31     P l=a[0],r=a[1],mid,mmid;
    32     F(i,1,100)
    33     {
    34         mid=P((l.first+r.first)/2,(l.second+r.second)/2);
    35         mmid=P((mid.first+r.first)/2,(mid.second+r.second)/2);
    36         if(check(mid)>check(mmid))l=mid;
    37         else r=mmid;
    38     }
    39     return check(l);
    40 }
    41 
    42 int main()
    43 {
    44     scanf("%d",&t);
    45     while(t--)
    46     {
    47         scanf("%lf%lf%lf%lf",&a[0].first,&a[0].second,&a[1].first,&a[1].second);
    48         scanf("%lf%lf%lf%lf",&a[2].first,&a[2].second,&a[3].first,&a[3].second);
    49         scanf("%lf%lf%lf",&v1,&v2,&v3);
    50         printf("%.2f
    ",sanfen());
    51     }
    52     return 0;
    53 }
    View Code
  • 相关阅读:
    模板类 & 虚函数
    Page Color (页面着色)
    修改静态库
    ElementUI 时间选择器
    自定义export
    vue组件
    ElementUI 表格
    ElementUI 分页
    数组方法分类
    Vue过滤数组副本
  • 原文地址:https://www.cnblogs.com/bin-gege/p/7132752.html
Copyright © 2011-2022 走看看