#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
#define MAX_N 20000
struct Node {
int a, b, c;
};
set<int> s[MAX_N + 5];
int fa[MAX_N + 5], n, m;
int get(int x) {
return fa[x] = (fa[x] == x ? x : get(fa[x]));
}
int main() {
cin >> n >> m;
vector<Node> arr(m);
for (int i = 0; i <= n; i++) fa[i] = i;
for (int i = 0, a, b, c; i < m; i++) {
cin >> arr[i].a >> arr[i].b >> arr[i].c;
}
sort(arr.begin(), arr.end(), [&](Node i, Node j) -> bool {return i.c > j.c;
});
for (int i = 0; i < m; i++) {
int a = arr[i].a, b = arr[i].b;
if (get(a) == get(b)) {
cout << arr[i].c;
return 0;
}
if (!s[a].empty()) {
fa[get(*s[a].begin())] = get(b);
}
if (!s[b].empty()) {
fa[get(*s[b].begin())] = get(a);
}
s[a].insert(b);
s[b].insert(a);
}
cout << 0;
return 0;
}
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
#define MAX_N 20000
class UnionSet {
public:
UnionSet(int n) : fa(n + 1), val(n + 1) {
for (int i = 0; i <= n; i++) {
fa[i] = i;
val[i] = 0;
}
}
int get(int x) {
if (fa[x] == x) return x;
int root = get(fa[x]);
val[x] = (val[x] + val[fa[x]]) % 2;
return fa[x] = root;
}
void merge(int a, int b, int t) {
int aa = get(a), bb = get(b);
if (aa == bb) return;
val[aa] = (t - val[a] + val[b] + 2) % 2;
fa[aa] = bb;
return;
}
vector<int> fa, val;
};
struct Data {
int a, b, c;
};
int main() {
int n, m;
cin >> n >> m;
UnionSet u(n);
vector<Data> arr(m);
for (int i = 0; i < m; i++) {
cin >> arr[i].a >> arr[i].b >> arr[i].c;
}
sort(arr.begin(), arr.end(), [&](const Data i, const Data j)->bool {
return i.c > j.c;
});
for (int i = 0; i < m; i++) {
int a = arr[i].a, b = arr[i].b;
if (u.get(a) == u.get(b)) {
if ((u.val[a] + u.val[b]) % 2 == 0) {
cout << arr[i].c;
return 0;
}
}
else {
u.merge(a, b, 1);
}
}
cout << 0;
return 0;
}
HZOJ-327:关押罪犯
云儿乱飘2023-10-20 17:51
相关推荐
可编程芯片开发17 分钟前
基于模糊PID控制的六步逆变器供电无刷直流电机调速simulink仿真imperialeast1 小时前
WinAXP音乐播放器8月4日更新ZhouDevin1 小时前
算法论文/模型微调1——CNN架构做lora微调训练小月土星1 小时前
LeetCode 21. 合并两个有序链表 超详细题解(虚拟头结点 + 逐行代码拆解)oier_Asad.Chen1 小时前
【OI学习笔记】Floyed-Warshall算法解决传递闭包问题国科安芯1 小时前
卫星星务计算机数据管理中SEU容错机制的技术实现研究——以AS32S601存储器ECC架构为例孙启超1 小时前
【AI应用开发】Agent 无限 loop(反复调用同一个工具)如何规避?小月土星2 小时前
LeetCode 142. 环形链表 II 超详细题解(快慢指针原理+逐行代码拆解)dok122 小时前
Johannes 《Linux内核模块与设备驱动开发:编写Linux驱动程序》 (11)kmalloc 动态内存分配和struct file中的私有数据hansang_IR2 小时前
【题解】[COCI 2024/2025 #2] 流明 / Blistavost