三分模板。
#include<bits/stdc++.h> #define int long long #define double long double #define x first #define y second using namespace std; typedef long long LL; typedef long long ll; typedef pair<int, int> PII; const int N = 3e5 + 10; const int M = 1e3 + 10; int mod = 1e9 + 7; struct link { double k, a, b; } a[N]; int n; double check(double x) { double res = 0; for (int i = 1; i <= n; i++) res += fabs(a[i].k * x + a[i].a) + a[i].b; return res; } void solve() { cin >> n; double l, r; cin >> l >> r; for (int i = 1; i <= n; i++) cin >> a[i].k >> a[i].a >> a[i].b; while (fabs(r - l) > 1e-9) { double mid = (l + r) / 2; double midmid = (mid + r) / 2; if (check(mid) < check(midmid)) r = midmid; else l = mid; } cout << fixed << setprecision(10) << check(l) << "\n"; } signed main() { ios::sync_with_stdio(false); cin.tie(0), cout.tie(0); int _; _ = 1; cin >> _; while (_--) { solve(); } }