暴力写为什么出错
查看原帖
暴力写为什么出错
1062532
MinLand楼主2024/10/9 17:00
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;

namespace awa {
	const int N = 114514;
	vector<pll>g[N];
	ll n, d[N];
	ll ans = 0;
	void init() {
		scanf("%lld", &n);
		for (int i = 1; i < n; i++) {
			int u, v, w;
			scanf("%d%d%d", &u, &v, &w);
			g[u].push_back({v, w});
		}
	}

	void dfs(int x) {
		for (unsigned int i = 0; i < g[x].size(); i++) {
			int v = g[x][i].first, w = g[x][i].second;
			d[v] = d[x] ^ w;
			ans = max(d[v], ans);
			dfs(v);
		}
	}
	
	void solve() {
		for (int i = 1; i <= n; i++) {
			memset(d, 0, sizeof d);
			dfs(i);
		}
		cout << ans;
	}
}

int main() {
	awa::init();
	awa::solve();
	return 0;
}

想法每个点是dfs全部走一遍,寻找最大值但是只过部分,这是为什么。

记录

2024/10/9 17:00
加载中...