nssl1437-逮虾户【二分答案】
生活随笔
收集整理的這篇文章主要介紹了
nssl1437-逮虾户【二分答案】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正題
題目大意
nnn段路,每一段路速度是vi+dv_i+dvi?+d,長度是sis_isi?,在ttt秒跑完了,求ddd的值。
解題思路
指數域二分,然后判斷是否跑完即可。
codecodecode
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> using namespace std; const int N=1100; const double eps=1e-14; int n; double s[N],v[N],t; bool check(double x) {double ans=0;for(int i=1;i<=n;i++){if(v[i]+x<=0) return 0;ans+=s[i]/(v[i]+x);}return (ans<=t); } int main() {scanf("%d%lf",&n,&t);for(int i=1;i<=n;i++)scanf("%lf%lf",&s[i],&v[i]);double l=-1e8,r=1e8;for(int i=1;i<=100000;i++){double mid=(l+r)/2.0;if(check(mid)) r=mid;else l=mid;}if(l<eps&&-l<eps) printf("%.12lf",0);else printf("%.12lf",l); }總結
以上是生活随笔為你收集整理的nssl1437-逮虾户【二分答案】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2014 设计电脑配置清单(2014 设
- 下一篇: nssl1438-战略威慑【枚举,树的直