社区讨论
90分求助
P1525[NOIP 2010 提高组] 关押罪犯参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo891jb7
- 此快照首次捕获于
- 2023/10/27 14:45 2 年前
- 此快照最后确认于
- 2023/10/27 14:45 2 年前
CPP
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 100005, maxm = 100005;
int n, m, fa[maxn << 1];
struct Edge {
int u, v, w;
bool operator < (const Edge &a) const {
return a.w < w;
}
} e[maxm << 1];
int find(int x) {
if (fa[x] == x) return x;
return fa[x] = find(fa[x]);
}
void sovel() {
scanf("%d%d", &n, &m);
for (register int i = 1; i <= n; ++i) {
fa[i] = i;
fa[i + n] = i + n;
}
for (register int i = 1; i <= m; ++i) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
e[i] = {u, v, w};
}
sort(e + 1, e + m + 1);
for (register int i = 1; i <= n; ++i) {
int fu = find(e[i].u);
int fv = find(e[i].v);
if (fu == fv) {
printf("%d\n", e[i].w);
return;
}
int ffu = find(e[i].u + n);
int ffv = find(e[i].v + n);
fa[fu] = ffv;
fa[fv] = ffu;
}
printf("%d\n", 0);
return;
}
int main() {
sovel();
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...