提交时间:2024-10-30 14:26:53

运行 ID: 33891

//test #include <bits/stdc++.h> #define int long long using namespace std; map <int, int> mp1, //xi+yi=key mp2; //xi-yi=key int x[100005], y[100005]; signed main() { // freopen("pair.in", "r", stdin); // freopen("pair.out", "w", stdout); int _; scanf("%lld", &_); while (_--) { mp1.clear(); mp2.clear(); int n; scanf("%lld", &n); long double ans = 0; for (int i = 1; i <= n; i++) { scanf("%lld %lld", &x[i], &y[i]); mp1[x[i] + y[i]]++; mp2[x[i] - y[i]]++; if (mp1[x[i] + y[i]] == 2 || mp2[x[i] - y[i]] == 2) { ans = 2 / sqrtl(2); break; } } if (ans != 0) { printf("%.12Lf\n", ans); continue; } for (int i = 1; i <= n; i++) { for (int j = 1; j < i; j++) { ans = max(ans, (abs(x[i] - x[j]) + abs(y[i] - y[j])) / sqrtl((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]))); } } printf("%.10Lf\n", ans); } return 0; } /* (x0, y0) 与 y=x+b 的距离 y0=-x0+b0 y=-x0/y0(x)+b0/y0 {y=x+b x+b=-x0/y0(x)+b0/y0 x+x0/y0(x)=b0/y0-b (1+x0/y0)x=b0/y0-b x=(b0/y0-b)/(1+x0/y0) y=x+b # */