2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016) 个人题解

  • Problem C Careful Ascent

可怜的我们被卡在了签到题上,当时用的二分来做,结果速度的左右区间写成了[0,1e32],而改成[-1e32,1e32]就通过了,哎~,怎么就没想到去改一下区间的范围呢。

下面是正常的数学解法,类似于解一元一次方程。

#include <iostream>
using namespace std;
typedef long long ll;

ll x,y,n;
ll a,b;double c;
int main(){
    cin>>x>>y>>n;
    ll sum = y;
    double X = 0;
    while (n--){
        cin>>a>>b>>c;
        sum -= (b-a);
        X += (b-a)*c;
    }
    X += sum;
    printf("%.10f\n",(double)x/X);
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/bigbrox/p/11628112.html