30分求调
查看原帖
30分求调
806720
sea_water楼主2024/12/1 19:36
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<pair<int, int>> p[52];
int len[52], maxx, maxxx;
bool b[52];

void dfs(int x) {

	for (int i = 0; i < p[x].size(); i++) {
		if (b[p[x][i].first])
			continue;
		b[p[x][i].first] = 1;
		len[p[x][i].first] = len[x] + p[x][i].second;
		if (len[p[x][i].first] > len[maxx])
			maxx = p[x][i].first;
		dfs(p[x][i].first);
		b[p[x][i].first] = 0;
	}
}

int main() {
	cin >> n >> m;
	for (int i = 1; i <= m; i++) {
		int u, v, w;
		cin >> u >> v >> w;
		p[u].push_back({v, w});
		p[v].push_back({u, w});
	}
	for (int i = 1; i <= n; i++) {
		len[i] = 0;
		b[i] = 1;
		dfs(i);
		//b[i] = 0;
		maxxx = max(len[maxx], maxxx);
	}
	cout << maxxx << '\n';
	return 0;
}
2024/12/1 19:36
加载中...