#include #include #include using namespace std; int sum[3005], fa[3005]; int find(int x) { //查找,压缩路径 if (fa[x] == -1) return x; return fa[x] = find(fa[x]); } int main() { int n, m, i, x, y, z, cnt, t1, t2; while (~scanf("%d%d", &n, &m)) { cnt = n - 1; memset(fa, -1, sizeof(fa)); memset(sum, 0, sizeof(sum)); for (i = 1; i <= m; i++) { scanf("%d%d%d", &x, &y, &z); if (x == y) continue; sum[x] += z; sum[y] += z; x = find(x); y = find(y); if (x != y) { fa[x] = y; cnt--; //统计还剩多少点未连通 } } if (cnt == 0) { //图连通 int minn = 0x3ffffff; for (int i = 1; i <= n; i++) { if (sum[i] < minn) { minn = sum[i]; } } printf("%d\n", minn); } else printf("0\n"); } return 0; }