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
  • 相关阅读:
    java+opencv实现图像灰度化
    java实现高斯平滑
    hdu 3415 单调队列
    POJ 3368 Frequent values 线段树区间合并
    UVA 11795 Mega Man's Mission 状态DP
    UVA 11552 Fewest Flops DP
    UVA 10534 Wavio Sequence DP LIS
    UVA 1424 uvalive 4256 Salesmen 简单DP
    UVA 1099 uvalive 4794 Sharing Chocolate 状态DP
    UVA 1169uvalive 3983 Robotruck 单调队列优化DP
  • 原文地址:https://www.cnblogs.com/bin-gege/p/7132752.html
Copyright © 2011-2022 走看看