#include <bits/stdc++.h>
using namespace std;
#define pii pair<int, int>
pii mkp(int v, int w){pii p; p.first = v, p.second = w; return p;}
int n, m, u[200001], v[200001], c[200001], fa[200001], ans[200001], cnt;
vector<pii > g[200001];
int find(int u){if (fa[u] == u) return u; return fa[u] = find(fa[u]);}
void dfs(int uu, int f, int val){
if (uu != 1){
if (ans[f] == val) ans[uu] = ans[f] % n + 1;
else ans[uu] = val;
}
for (int i = 0; i < g[uu].size(); i++){
int vv = g[uu][i].first, w = g[uu][i].second;
if (vv != f) dfs(vv, uu, w);
}
}
signed main(){
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; i++) scanf("%d%d%d", &u[i], &v[i], &c[i]);
for (int i = 1; i <= n; i++) fa[i] = i;
for (int i = 1; i <= m; i++){
if (find(u[i]) != find(v[i])){
cnt++;
g[u[i]].push_back(mkp(v[i], c[i]));
g[v[i]].push_back(mkp(u[i], c[i]));
fa[v[i]] = u[i];
if (cnt == n - 1) break;
}
}
ans[1] = 1; dfs(1, 0, 0);
for (int i = 1; i <= n; i++) printf("%d\n", ans[i]);
return 0;
}
RE,显示
Main.cpp: In function ‘void dfs(int, int, int)’:
Main.cpp:14:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
14 | for (int i = 0; i < g[uu].size(); i++){
| ~~^~~~~~~~~~~~~~
Main.cpp: In function ‘int main()’:
Main.cpp:20:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
20 | scanf("%d%d", &n, &m);
| ~~~~~^~~~~~~~~~~~~~~~
Main.cpp:21:43: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
21 | for (int i = 1; i <= m; i++) scanf("%d%d%d", &u[i], &v[i], &c[i]);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~