zoukankan      html  css  js  c++  java
  • UVA1753 Need for Speed题解

    发布题解便于我日后复习二分用 顺便水下咕值

     看到这道题,根据题意我们能很快找到c与时间t和d[i],s[i]的关系,然后呢? 

    然后不会了 于是就想到了二分答案 二分枚举,一直靠近答案为止 代码有注释

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    double d[100000],s[100000];
    int n,t;
    bool check(double x){
    double sum=0;
    for(register int i=1;i<=n;i++){
        double m=s[i]+x;//算出枚举出来的速度
           if(m<=0)return 0;//速度总不可能小于0吧                        
    sum+=d[i]/m;//累加时间
    }
    if(sum<=t)return 1;//如果时间小于总时间,可行
    else return 0;
    }
    int main(){
    int i,j;                                                                                                        
    while(~scanf("%d%d",&n,&t)){double ans;
    double l=-20000000,r=20000000;//枚举左右区间
    for(i=1;i<=n;i++)
    scanf("%lf%lf",&d[i],&s[i]);
    for(i=1;i<=100;i++)
    {
    double mid=(l+r)/2;
    if(check(mid)){
    ans=mid;
    r=mid;//如果答案可行,储存
    }
    else l=mid;
    }
    printf("%.9lf
    ",ans);
    }
    return 0;
    }
    缘分让我们相遇乱世以外, 命运却要我们危难中相爱。 也许未来遥远在光年之外, 我愿守候未知里为你等待。
  • 相关阅读:
    第八周上机
    第七周作业
    第七周上机练习
    第六周作业
    第六次上机
    第五次上机
    第四周作业
    第四周上机练习
    第三次作业
    第二次作业
  • 原文地址:https://www.cnblogs.com/zw130-lzr-blogs/p/10945723.html
Copyright © 2011-2022 走看看