社区讨论
暴力写为什么出错
P4551最长异或路径参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m21n5uak
- 此快照首次捕获于
- 2024/10/09 17:02 去年
- 此快照最后确认于
- 2025/11/04 17:34 4 个月前
CPP
#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全部走一遍,寻找最大值但是只过部分,这是为什么。
回复
共 2 条回复,欢迎继续交流。
正在加载回复...