• [SCOI2010]传送带


    1857: [Scoi2010]传送带

    Time Limit: 1 Sec  Memory Limit: 64 MB
    Submit: 1938  Solved: 1055
    [Submit][Status][Discuss]

    Description

    在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间

    Input

    输入数据第一行是4个整数,表示A和B的坐标,分别为Ax,Ay,Bx,By 第二行是4个整数,表示C和D的坐标,分别为Cx,Cy,Dx,Dy 第三行是3个整数,分别是P,Q,R

    Output

    输出数据为一行,表示lxhgww从A点走到D点的最短时间,保留到小数点后2位

    Sample Input

    0 0 0 100
    100 0 100 100
    2 2 1


    Sample Output

    136.60

    HINT

    对于100%的数据,1<= Ax,Ay,Bx,By,Cx,Cy,Dx,Dy<=1000
    1<=P,Q,R<=10

    Source

     
     
    我奶了一口斜率肯定是单调的,所以直接上了三分套三分2333
     
    然后就A了???、
     
    #include<bits/stdc++.h>
    #define ll long long
    #define D double
    const D eps=1e-15;
    using namespace std;
    struct node{
    	D x,y;
    	node operator -(const node &u)const{
    		return (node){x-u.x,y-u.y};
    	}
    	node operator +(const node &u)const{
    		return (node){x+u.x,y+u.y};
    	}
    	node operator *(const D &u)const{
    		return (node){x*u,y*u};
    	}
    }a[5];
    D P,Q,R;
    
    inline D sq(D x){
    	return x*x;
    }
    
    inline D dis(node x,node y){
    	return sqrt(sq(x.x-y.x)+sq(x.y-y.y));
    }
    
    inline D g(D tmp1,D tmp2){
    	node x=a[1]+a[2]*tmp1,y=a[4]+a[3]*tmp2;
    	return dis(a[1],x)/P+dis(a[4],y)/Q+dis(x,y)/R;
    }
    
    inline D f(D tmp1){
    	D l=0.00,r=1.00,ml,mr;
    	while(r-l>=eps){
    		ml=(l*2+r)/3,mr=(l+r*2)/3;
    		if(g(tmp1,ml)<g(tmp1,mr)) r=mr;
    		else l=ml;
    	}	
    	return g(tmp1,l);
    }
    
    int main(){
    	for(int i=1;i<=4;i++) scanf("%lf%lf",&a[i].x,&a[i].y);
    	a[2]=a[2]-a[1],a[3]=a[3]-a[4];
    	scanf("%lf%lf%lf",&P,&Q,&R);
    	D l=0.00,r=1.00,ml,mr;
    	while(r-l>=eps){
    		ml=(l*2+r)/3,mr=(l+r*2)/3;
    		if(f(ml)<f(mr)) r=mr;
    		else l=ml;
    	}
    	
    	printf("%.2lf
    ",f(l));
    	return 0;
    }
    

      

  • 相关阅读:
    JavaScript学习总结(七)Ajax和Http状态字
    JavaScript学习总结(六)数据类型和JSON格式
    JavaScript学习总结(五)原型和原型链详解
    JavaScript学习总结(四)function函数部分
    JavaScript学习总结(三)BOM和DOM详解
    微信小程序canvas绘制海报,并且实现图片保存至相册例子
    微信小程序与webview交互实现支付
    vue-微信支付or支付宝支付片段
    微信小程序授权登录
    微信分享
  • 原文地址:https://www.cnblogs.com/JYYHH/p/8581153.html
Copyright © 2020-2023  润新知