TLE 了。原因不明。理论上并不会这样,因为复杂度是 O(TN2) 的。
没想到这么个水题也做不出来,对着题解调了一会也没写对,就麻烦各位大佬了 /kk
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
const int maxN = 4005;
int a[maxN], b[maxN], c[maxN], d[maxN];
unordered_map<int, int> mp;
int main() {
//freopen("1.in", "r", stdin);
//freopen("1.out", "w", stdout);
ios::sync_with_stdio(0);
int t;
cin >> t;
for (; t; t--) {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i] >> b[i] >> c[i] >> d[i];
}
mp.clear();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
mp[a[i] + b[j]]++;
}
}
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
ans += mp[-c[i] - d[j]];
}
}
cout << ans << endl;
}
return 0;
}