BZOJ4668——冷战
来源:互联网 发布:mac 如何安装xcode 编辑:程序博客网 时间:2024/04/29 22:33
1、题意:给一些点,有两种操作, 连通两个点和询问两个点最早是在什么时候连通
2、分析:这题用lct维护动态最小生成树就好。。但是过于暴力,我们可以倒着用并查集暴力查询,然后依旧是查询链上的最大值,然而这次我们不路径压缩,我们按秩合并,然后树高
#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;#define M 1000010inline int read(){ char ch = getchar(); int x = 0, f = 1; while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; ch = getchar(); } while('0' <= ch && ch <= '9'){ x = x * 10 + ch - '0'; ch = getchar(); } return x * f;}int fa[M], Rank[M], dep[M], val[M]; inline int find(int x){ if(fa[x] == x) return x; int ret = find(fa[x]); dep[x] = dep[fa[x]] + 1; return ret;}inline int lca(int x, int y){ int ans = 0; while(x != y){ if(dep[x] < dep[y]) swap(x, y); ans = max(ans, val[x]); x = fa[x]; } return ans;}int main(){ //freopen("0input.in", "r", stdin); int n = read(), m = read(); for(int i = 1; i <= n; i ++){ fa[i] = i; Rank[i] = 1; dep[i] = 0; } int time = 0, ans = 0; for(int i = 1; i <= m; i ++){ int op = read(), x = read(), y = read(); x ^= ans; y ^= ans; if(!op){ int px = find(x), py = find(y); time ++; if(px != py){ if(Rank[px] >= Rank[py]){ fa[py] = px; val[py] = time; if(Rank[px] == Rank[py]) Rank[px] ++; } else{ fa[px] = py; val[px] = time; } } } else{ int px = find(x), py = find(y); if(px != py) ans = 0; else ans = lca(x, y); printf("%d\n", ans); } } return 0;}
0 0
- BZOJ4668——冷战
- BZOJ4668 冷战
- bzoj4668 冷战
- bzoj4668 冷战 (并查集按秩合并)
- 冷战——婚姻生活的双刃剑
- 冷战
- 冷战
- 见证者安•兰德 ——冷战自由主义与新保守主义
- [JZOJ4588]冷战
- 基础软件业的“冷战”
- 初见同事冷战
- BZOJ 4668 冷战
- 【BZOJ】4668 冷战
- BZOJ 4668 冷战
- 【FJ 2016 Day5】冷战(coldwar)
- 回顾:浏览器市场的三大冷战
- 现实迷途 第三十五章 进入冷战
- BZOJ 4668(冷战-并查集按秩合并)
- 常用Android布局学习知识点汇总
- ubuntu入门系列-换源-换中文
- IOS微信三方登陆(不错)
- 深度学习解决局部极值和梯度消失问题方法简析
- 用eclipse打包签名时报android-support7下的xml文件出错貌似是命名冲突了
- BZOJ4668——冷战
- C语言之函数指针
- 进阶必看:数字营销的8种效果优化技巧及评估方法
- 在普通网页中调用html5+的plus对象
- 开发工具:AS快捷键
- 关于lock.lockInterruptibly()方法和java.lang.IllegalMonitorStateException异常
- HDU 3182-Hamburger Magi
- Android 软键盘遮挡的四种解决方案
- 使用ExecutorService、Callable、Future实现有返回结果的多线程 应用实例