- 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; }
原文地址:https://www.cnblogs.com/bigbrox/p/11628112.html
时间: 2024-10-04 22:53:28