题解:P6933 [ICPC2017 WF] Need for Speed
__zyq_666_kpzc__ · · 题解
题目传送门
思路分析
根据题意,我们可以知道:比正确答案
于是,我们可以想到用二分答案解决此题,二分最后的答案
注意:最后的答案是浮点数!!!
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
const double h=1e-7;
double t,ju_li[1005],su_du[1005],l=10000000,r=10000000;;
bool check(double x){
double sum=0;
for(int i=1;i<=n;i++)sum+=ju_li[i]*1.0/(su_du[i]+x);
return sum>t;
}
signed main(){
cin>>n>>t;
for(int i=1;i<=n;i++){
cin>>ju_li[i]>>su_du[i];
l=min(l,su_du[i]);
}
l=-l;
while(l+h<r){
double mid=(l+r)/2;
if(check(mid)==true)l=mid;
else r=mid;
}
printf("%.7lf",r);
return 0;
}