76分TLE求助
查看原帖
76分TLE求助
653212
shensiyuan2011楼主2024/8/26 16:12
#include <bits/stdc++.h>
using namespace std;
unordered_map<long, unordered_map<long, unordered_map<long, int>>>mp;
long ans = 0, u[50010], v[50010], w[50010];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	long n, m;
	cin >> n >> m;
	for (long i = 0; i < m; i++) {
		cin >> u[i] >> v[i] >> w[i];
		mp[u[i]][v[i]][w[i]]++;
	}
	for (long i = 0; i < m; i++) {
		long a = u[i], b = v[i], c = w[i];
		for (auto d : mp[a][b])
			if (c < d.first && d.first <= n && mp[a][c][d.first] >= 1 && mp[b][c][d.first] >= 1)
				ans += mp[a][b][c] * mp[a][b][d.first] * mp[a][c][d.first] * mp[b][c][d.first];
	}
	cout << ans;
	return 0;
}

用的 unodered_map ,搞不懂为啥TLE。
时间复杂度O(nm)O{(nm)},和题解的差不多。

2024/8/26 16:12
加载中...