求助
查看原帖
求助
538209
copper_ingot楼主2024/10/14 13:07
#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&lt;std::pair&lt;int, int&gt; &gt;::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   14 |         for (int i = 0; i &lt; g[uu].size(); i&#43;&#43;){
      |                         ~~^~~~~~~~~~~~~~
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(&#34;%d%d&#34;, &amp;n, &amp;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 &lt;= m; i&#43;&#43;) scanf(&#34;%d%d%d&#34;, &amp;u[i], &amp;v[i], &amp;c[i]);
      |                                      ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2024/10/14 13:07
加载中...