问题 B: 逮虾户

第二天叫醒我的不是闹钟,是梦想!

题目描述
藤原海鲜店以虾好吃而闻名,所以藤原家的车每天晚上都会来回秋名山去捕虾,俗称逮虾户。因为每天都要开车无数次,藤原已经成为了老司机,以至于他不用看车的表盘都可以感觉出车的速度。但是这样的感觉是有偏差的,假设这个偏差是恒定的,且藤原在开车过程中的车速也是恒定的,接下来给你藤原的 n 次车程和总行驶时间t,其中第 i 次车程的行驶距离为 si, 藤原感觉到的车速为 vi, 求藤原对车速的感知偏差d(d = 实际车速 - vi, d 可能为负数)
输入
第一行:2个数n和t,中间用空格分割(1 ≤ n ≤ 1000,1 ≤ t ≤ 10^6)
后面n行:每行2个数si和vi,中间用空格分割(1 ≤ si ≤ 1000,-1000 ≤ vi ≤ 1000)
输出
输出一个数,表示藤原对车速的感知偏差,误差不超过10-6。
样例输入 Copy
3 5
4 -1
4 0
10 3
样例输出 Copy
3.000000000
提示
对于40%的数据, n <= 10
对于65%的数据, n <= 100
对于100%的数据, n <= 1000

//浮点数二分

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
double esp=1e-7;
int n,s;
double si,vi,mid,l,m;
struct node
{
  double si,vi;
}e[N];
int main()
{
  l=-8888888;
  scanf("%d %lf",&n,&m);
  for(int i=1;i<=n;i++)
  {
    scanf("%lf %lf",&e[i].si,&e[i].vi);
    l=max(l,-e[i].vi);
  }
  double r=2131312.0 ;
  while(r-l>esp)
  {
    mid=(l+r)/2.0;
    double sum=0;
    for(int i=1;i<=n;i++)
    {
      sum=sum+(e[i].si/(mid+e[i].vi));
    //  cout<<e[i].
    }
    if(sum<=m) r=mid;
    else l=mid;
  }
  printf("%.9lf",l);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值