-
个人简介
#include<bits/stdc++.h> using namespace std; const int N = 1e5 + 9; struct node{ int x, y, w; }e[N]; int n, m; struct nn{ int y, w; }; vector<nn> g[N]; bool cmp(node a, node b){ return a.w > b.w; } int f[N], cnt; int find(int x){ return f[x] == x ? x : f[x] = find(f[x]); } void merge(int x, int y){ int fx = find(x); int fy = find(y); if(fx!=fy) f[fx] = fy; } int dep[N], fa[N][22], mn[N][22]; int kur(){ sort(e + 1, e + m + 1, cmp); int ans = 0; for(int i = 1; i <= m; i++){ int x = e[i].x, y = e[i].y, w = e[i].w; if(find(x) == find(y)) continue; g[x].push_back({y, w}); g[y].push_back({x, w}); merge(x, y); cnt++; if(cnt==n-1)break; } return ans; } void dfs(int x, int _fa, int w){ dep[x] = dep[_fa] + 1; fa[x][0] = _fa; mn[x][0] = w; //x -> _fa 的权值 for(int i = 1; i <= 19; i++){ fa[x][i] = fa[fa[x][i-1]][i-1]; mn[x][i] = min(mn[fa[x][i-1]][i-1], mn[x][i-1]); } for(int i = 0; i < g[x].size(); i++){ int y = g[x][i].y, w = g[x][i].w; if(y == _fa) continue; dfs(y, x, w); } } int lca(int x, int y){ if(dep[x] < dep[y]) swap(x, y); int d = dep[x] - dep[y]; int ans = 0x3f3f3f3f; for(int i = 19; i >= 0; i--){ if((1<<i) & d) { ans = min(ans, mn[x][i]); x = fa[x][i]; } } if(x == y) return ans; for(int i = 19; i >= 0; i--){ if(fa[x][i] != fa[y][i]){ ans=min({ans, mn[x][i], mn[y][i]}); x = fa[x][i], y = fa[y][i]; } } ans = min({ans, mn[x][0], mn[y][0]}); return ans; } int main(){ cin >> n >> m; for(int i = 1; i <= n; i++) f[i] = i; for(int i = 1; i <= m; i++){ int x, y, w; cin >> x >> y >> w; e[i] = {x, y, w}; } memset(mn, 0x3f, sizeof mn); kur(); for(int i = 1; i <= n; i++){ // cout << fa[i] << " "; if(fa[i][0] == 0){ // cout << i << "::::\n"; dfs(i, 0, 0); } } // cout << "###" << fa[5][0] << "\n"; cin >> m; while(m--){ int x, y; cin >> x >> y; if(find(x) != find(y)) { puts("-1"); continue; } cout << lca(x, y) << "\n"; } return 0; }
-
最近活动
- 二维平面的BFS/DFS IOI
- 初赛训练05 OI
- 2025 CSP-J周赛第10场 IOI
- 2025年第一场新手赛 IOI
- 2025 CSP-S周赛第1场 IOI
- 初赛-04 OI
- 并查集训练 IOI
- 2025 CSP-J周赛第9场 IOI
- 2025 CSP-J周赛第8场 订正赛 IOI
- 综合练习一 IOI
- 综合训练一 IOI
- 初赛训练2 OI
- 综合训练 IOI
- 2025 CSP-J周赛第8场 IOI
- 哈希篇 IOI
- 初赛练习 OI
- 树上问题 IOI
- 2025 CSP-J周赛第7场 IOI
- 模拟+分块 IOI
- 最短路算法1 IOI
- 2025 CSP-J周赛第6场 IOI
- 初赛训练1 OI
- 同余最短路 IOI
- 语法综合测试 IOI
- 2025 CSP-J周赛第5场 IOI
- 综合练习 IOI
- 2025 CSP-J周赛第4场 订正 IOI
- 差分约束 IOI
- 强连通分量 IOI
- 2025 CSP-J周赛第3场 订正 IOI
- 冲奖1班-作业04 IOI
- 数位DP IOI
- 线段树综合 IOI
- 差分约束 IOI
- 2025 CSP-J周赛第4场 IOI
- 2025 CSP-J周赛第2场 订正 IOI
- 冲奖1班-作业03 IOI
- 线段树-动态开点 IOI
- 2025 CSP-J周赛第2场 OI
- 冲奖1班-作业02 IOI
- 2025 CSP-J周赛第1场 订正赛 IOI
- 2025 CSP-J周赛第1场 OI
- 线段树练习2 IOI
- 冲奖1班-作业01 IOI
- 阶段测试1 IOI
- 线段树练习1 IOI
- 2025年周赛-1 IOI
- 语法综合应用 IOI
- 进制与位运算 IOI
- 离散化 IOI
- 2025年春节娱乐赛订正 IOI
- 2025年春节娱乐赛 IOI
- 挑战赛(测试用) ACM/ICPC
- 集训测试2 IOI
- 冲奖二班 - 作业13 IOI
- 冲奖一班 - 作业13 IOI
- 提高组-作业10 IOI
- 基础练习4 IOI
- 循环 IOI
- 冲奖一班 - 作业12 IOI
- 基础练习3 IOI
- NOIP训练第二周 IOI
- 冲奖1班 - 作业11 IOI
- 冲奖二班 - 作业12 IOI
- 数组练习 IOI
- NOIP训练第一周 IOI
- 冲奖1班 - 作业10 IOI
- 提高组-作业07~09 IOI
- 基础练习2 IOI
- 冲奖二班 - 作业10 IOI
- 冲奖1班 - 作业09 IOI
- 模拟测试 IOI
- 提高组-作业06 IOI
- NOIP练习四 IOI
- NOIP练习三 IOI
- GESP二级 IOI
- 提高组-作业03 IOI
- NOIP练习二 IOI
- 提高组-作业02 IOI
- NOIP练习++ IOI
- 练习 IOI
- 冲奖二班 - 作业06 - 08 IOI
- 冲奖1班 - 作业05~08 IOI
- 2024年CSP-J自测 IOI
- 2024年CSP-S自测 IOI
- 作业04 IOI
- 作业05 IOI
- 团队赛一 ACM/ICPC
- 阶段测试 IOI
- 作业03 IOI
- 2024年CSP-S自测 IOI
- 2024年CSP-J自测 IOI
- 作业02 IOI
- 课堂练习2 IOI
- 冲奖1班-作业04 IOI
- 2024CSP-J模拟赛二 订正 IOI
- 贪心 IOI
- 2024CSP-J模拟赛二 OI
- CSP-S复赛模考七 OI
- 作业01 IOI
- 冲奖1班-作业03 IOI
- 2024CSP-J模拟赛一 订正 IOI
- 娱乐赛 ACM/ICPC
- 2024CSP-J模拟赛一 OI
- 得分训练 IOI
- 数据结构1 IOI
- 作业02 IOI
- C1晋级测试 IOI
- 递归训练 IOI
- CSP-J 国庆集训Day05 补题 IOI
- CSP-J 国庆集训Day05 OI
- CSP-S模拟考试五 OI
- CSP-J 国庆集训Day04 OI
- CSP-S模拟考试三 IOI
- CSP-J 国庆集训Day03 OI
- CSP-S模拟考试二 订正 IOI
- CSP-S模拟考试二 IOI
- CSP-J 国庆集训Day02 OI
- CSP-S模拟考试一 OI
- 限时训练 OI
- CSP-J 国庆集训Day01 OI
- 2024 CSP-J 周赛第 20 场 订正 IOI
- 模拟1 IOI
- 模拟2 IOI
- 数组的应用 IOI
- 2024 初赛模拟考试(三) OI
- 2024 初赛模拟考试(四) OI
- 2024 初赛模拟考试(三) OI
- 团队赛 ACM/ICPC
- 2024 CSP-J 周赛第 20 场 OI
- 模拟 IOI
- 2024 初赛模拟考试(二) OI
- 2024 CSP-J 周赛第 19 场 订正 IOI
- 2024 CSP-J 周赛第 19 场 OI
- S组真题训练1 IOI
- 2024 CSP-J 周赛第 18 场 订正 IOI
- 2024 CSP-J 周赛第 18 场 OI
- 2024 初赛模拟考试(一) IOI
- 综合训练 IOI
- 综合测试 IOI
- 2024 CSP-J 周赛第 17 场 订正 IOI
- 2024 CSP-J 周赛第 17 场 OI
- 字符串 IOI
- 综合训练 IOI
- BFS限时赛 IOI
- 函数字符串 IOI
- 综合测试-4 IOI
- 2024 CSP-J 周赛第 16 场 订正 IOI
- 2024 CSP-J 周赛第 16 场 OI
- 动态规划综合 IOI
- 动态规划 IOI
- Day02 普及组模拟比赛 IOI
- Day01 普及组模拟比赛 IOI
- 动态规划入门 IOI
- 题目训练-2 IOI
- 题目训练 IOI
- selection OI
- 2024 CSP-J 周赛第 15 场 订正 IOI
- 2024 CSP-J 周赛第 15 场 OI
- 二分答案 订正 IOI
- 二分答案 IOI
- Day07 提高组模拟赛 订正 IOI
- Day07 提高组模拟赛 IOI
- Day06 提高组模拟赛 订正 IOI
- Day06 提高组模拟赛 IOI
- 题目训练 IOI
- Day05 提高组模拟赛 订正 IOI
- Day05 提高组模拟赛 IOI
- 综合测试 IOI
- 2024 CSP-J 周赛第 14 场 订正 IOI
- Day04 提高组模拟赛 IOI
- Day03 提高组模拟赛 IOI
- 2024 CSP-J 周赛第 14 场 OI
- Day02 提高组模拟赛 IOI
- 数组 IOI
- Day01 提高组模拟赛 订正 IOI
- Day01 提高组模拟赛 IOI
- 题目训练 IOI
- 数据结构练习 IOI
- 一维数组 IOI
- 娱乐赛 IOI
- 提高组练习-aaa IOI
- Day13 普及组模拟比赛 订正 IOI
- Day13 普及组模拟比赛 IOI
- celection OI
- 2024 CSP-J 周赛第 13 场 订正 IOI
- Day12 团队赛 ACM/ICPC
- 2024 CSP-J 周赛第 13 场 OI
- 数据结构练习 IOI
- Day11 普及组模拟比赛 订正 IOI
- Day11 普及组模拟比赛 IOI
- Day10 普及组模拟比赛 IOI
- 暑期练习-yjy IOI
- Day9 普及组模拟比赛 IOI
- Day08 普及组模拟比赛 IOI
- Day07 普及组模拟比赛 IOI
- 2024 CSP-J 周赛第 12 场 订正 IOI
- Day06 团队赛 ACM/ICPC
- 提高组练习-aaa IOI
- 2024 CSP-J 周赛第 12 场 OI
- Day03 普及组模拟比赛 IOI
- 提高组练习-hg IOI
- Day02 普及组模拟比赛 IOI
- Day01 普及组模拟比赛 IOI
- 提高组练习-2 IOI
- 2024 CSP-J 周赛第 11 场 订正 IOI
- 2024 CSP-J 周赛第 11 场 OI
- 线性优化算法 IOI
- 搜索与图论练习2 IOI
- 提高组练习 IOI
- 搜索与图论练习 IOI
- 2024 CSP-J 周赛第 10 场 订正 IOI
- 2024 CSP-J 周赛第 10 场 IOI
- 摸底测试 IOI
- 2024 CSP-J 周赛第 9 场 订正 IOI
- 练习 IOI
- 2024 CSP-J 周赛第 9 场 IOI
- 2024 CSP-J 周赛第 8 场 订正 IOI
- 字典树练习 IOI
- KMP算法练习 IOI
- 2024 CSP-J 周赛第 8 场 IOI
- 2024 CSP-J 周赛第 7 场 订正 IOI
- 循环练习 IOI
- 2024CSP-S 冲奖 平衡树篇 IOI
- 2024 CSP-J 周赛第 7 场 IOI
- 2024 CSP-J 周赛第 6 场 订正 IOI
- 2024CSP-S 冲奖 哈希篇 IOI
- 2024 CSP-J 周赛第 6 场 IOI
- GESP23年3月一级真题测试 OI
- GESP23年3月一级模拟测试 OI
- 2024 CSP-J 周赛第 5 场 订正 IOI
- 2024 CSP-J 周赛第 5 场 IOI
- CSP-J/S摸底测试 IOI
- 2024 CSP-J 周赛第 4 场 订正 IOI
- 团队赛 ACM/ICPC
- 2024 CSP-J 周赛第 4 场 IOI
- 2024 CSP-J 周赛第 3 场 补题 IOI
- 2024 CSP-J 周赛第 3 场 IOI
- 2024 CSP-J 周赛第 2 场 订正 IOI
- 2024 CSP-J 周赛第 2 场 IOI
- 2024 CSP-J 周赛第 1 场 订正 IOI
- 提高组比赛3 IOI
- 提高组比赛2 IOI
- 提高组比赛1 IOI
- 2024 CSP-J 周赛第 1 场 IOI
- 提高组训练4 订正 IOI
- C1晋级测试 IOI
- CSP能力测试 IOI
- 提高组训练4 IOI
- 育苗4班阶段测试2 IOI
- 冲奖班阶段测试40414 订正 IOI
- C++语法能力测试 IOI
- 提高组训练3 IOI
- 提高组训练2 订正 IOI
- 4月训练赛 ACM/ICPC
- 提高组训练2 IOI
- 2024冲奖班入学测试 IOI
- C5练习2 IOI
- L2阶段测试1 IOI
- 2024年S组阶段测试1 IOI
- L1阶段测试1 IOI
- C5练习 IOI
- 张宸睿入学测试 IOI
- CSP-J 能力测试 IOI
- C4 模拟比赛3 IOI
- C4 模拟比赛2 IOI
- C4 模拟比赛1 IOI
- Day05 结营测试 IOI
- Day04 团队赛 ACM/ICPC
- Day03 模拟比赛3 IOI
- Day02 模拟比赛2 IOI
- Day01 模拟比赛1 IOI
- Day05 提高组 模拟比赛 补题 IOI
- Day05 提高组 模拟比赛 IOI
- Day04 提高组 模拟比赛 订正 IOI
- Day04 提高组 模拟比赛 IOI
- Day03 提高组 模拟比赛 补题 IOI
- Day03 提高组 模拟比赛 IOI
- Day02 提高组 模拟比赛 补题 IOI
- Day02 提高组 模拟比赛 IOI
- Day01 提高组 模拟比赛 补题 IOI
- Day01 提高组 模拟比赛 IOI
- CSP能力测试 IOI
- C++语法能力测试 IOI
- C1晋级测试 IOI
- CSP-S模拟比赛2 补题 IOI
- CSP-S模拟比赛2 IOI
- C1晋级测试 IOI
- C2入学测试 IOI
- C3入学测试 IOI
- CSP-J能力测试 IOI
- C3入学测试 IOI
- C2入学测试 IOI
- C2综合测试 IOI
- C4阶段测试 补题 IOI
- C4阶段测试 IOI
- C4入学测试 IOI
- C++语法能力测试 IOI
- 模拟比赛1 补题 IOI
- 模拟比赛1 IOI
- C4阶段测试 IOI
- C++语法能力测试 IOI
- 2023 CSP-J 复赛模考【公开赛】 OI
- 2023 CSP-J/S 复赛模考(一) OI
- 2023 CSP-J/S 复赛模考(一) OI
- 2023 CSP-J/S 复赛模考(五)补题 IOI
- 2023 CSP-J/S 复赛模考(五) OI
- 2023 CSP-J/S 复赛模考(四)补题 IOI
- 2023 CSP-J/S 复赛模考(四) OI
- 2023 CSP-J/S 复赛模考(三)补题 IOI
- 2023 CSP-J/S 复赛模考(三) OI
- 2023 CSP-J/S 复赛模考(二)补题 IOI
- 2023 CSP-J/S 复赛模考(二) OI
- 2023 CSP-J/S 复赛模考(一) 补题 IOI
- 2023 CSP-J/S 复赛模考(一) OI
- C2入学测试 IOI
- C2入学测试 IOI
- 1 ACM/ICPC
- CSP-J能力测试 IOI
- C2入学测试 IOI
- 初赛班-Day09 OI
- 初赛班-Day02 OI
- 初赛班-Day01 OI
- CSP-J模拟测试 5 补题 IOI
- CSP-J模拟测试 5 IOI
- CSP-J模拟测试 4 补题 IOI
- CSP-J模拟测试3 补题 IOI
- CSP-J模拟测试 4 IOI
- CSP-J模拟测试3 补题 IOI
- CSP-J模拟测试3 IOI
- CSP-J模拟测试2 补题 IOI
- c++语法能力测试2 IOI
- CSP-J模拟测试2 IOI
- CSP-J模拟测试1 IOI
- 阶段测试30729 IOI
- 课堂训练 IOI
- 2023CSP-J模拟赛补题 IOI
- 2023CSP-J模拟赛 IOI
- 阶段测试2 IOI
- CSP-S测试 IOI
- 阶段测试1 IOI