左偏树 hdu1512
来源:互联网 发布:乐乎 编辑:程序博客网 时间:2024/06/16 05:01
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <string>#define Rep(i, x, y) for (int i = x; i <= y; i ++)#define RepE(i, x) for (int i = pos[x]; i; i = g[i].nex)#define Dwn(i, x, y) for (int i = x; i >= y; i --)#define u t[x]#define r t[y]#define lc u.ch[0]#define rc u.ch[1]#define Rc t[rc]#define Lc t[lc]using namespace std;typedef long long LL;const int N = 100005;struct arr { int ch[2], vl, d; } t[N];int n, par[N], a[N], m;int Fd(int x) { return (par[x] == x) ? x : (par[x] = Fd(par[x])); }int Merge(int x, int y) { if (!x || !y) return max(x, y); if (u.vl < r.vl) swap(x, y); rc = Merge(rc, y); par[rc] = x; if (Rc.d > Lc.d) swap(rc, lc); (!rc) ? u.d = 0 : u.d = Rc.d + 1; return x;}int Del(int x) { par[lc] = lc, par[rc] = rc; int y = Merge(lc, rc); u.d = lc = rc = 0; return y;}void Solve(int x, int y) { int l1, r1; u.vl /= 2, r.vl /= 2; l1 = Del(x), r1 = Del(y); l1 = Merge(l1, x); r1 = Merge(r1, y); x = Merge(l1, r1); printf("%d\n", u.vl);}int main(){while (~scanf ("%d", &n)) { Rep(x, 1, n) scanf ("%d", &a[x]), u.vl = a[x], par[x] = x, lc = rc = u.d = 0; scanf ("%d", &m); int x, y; Rep(i, 1, m) { scanf ("%d%d", &x, &y); x = Fd(x), y = Fd(y); if (x == y) { puts("-1"); continue ; } Solve(x, y); }} return 0;}
0 0
- 左偏树 hdu1512
- hdu1512 monkey king 左偏树
- HDU1512 左偏树||斜堆
- HDU1512 Monkey King 左偏树
- hdu1512
- ZOJ2334 HDU1512 Monkey King,左偏树
- HDU1512 左偏树(可并堆)
- hdu1512:Monkey King(左偏树)
- 【HDU1512】【左偏树】Monkey King 题解
- 【左偏树+并查集】Monkey King HDU1512
- hdu1512 & zoj2334Monkey King(左偏树 + 并查集)
- hdu1512 & zoj2334Monkey King(左偏树 + 并查集)
- hdu1512-Monkey King- 左偏树+并查集
- 左偏树+并查集 hdu1512 Monkey King
- HDU1512 Monkey King【并查集+左偏树】
- hdu1512 左偏树(可并堆)
- hdu1512 & zoj2334Monkey King(左偏树 + 并查集)
- [HDU1512/ZOJ2334]Monkey King-左偏树-可合并堆
- java判断字符串中是否含有中文字符
- iOS动画——ViewAnimations
- 图表插件汇总
- 都是回车惹的祸- Redhat中cron之奇异行为索源
- Objective C运行时(runtime)技术的几个要点总结
- 左偏树 hdu1512
- dbvisualizer客户端执行存储过程和函数(方法)注意事项
- Open IMS Client、Open IMS Core-----------跟着大牛学习!!!!!
- IBM(联想)服务器 技术周报 五月第一季
- 第5部分:为ToasterService添加一个消费者
- 播放iPod Library中的歌曲
- 【Android】Merge讲解与实例
- HTTP状态码
- view触摸移动