左偏树裸题

(搞板子搞到绝望x

//罗马游戏
#include <bits/stdc++.h>
using namespace std;
const int N = 1000050;
int val[N], l[N], r[N], d[N], fa[N];
int x, y, n, m;
char ord;
// 合并以 x, y为根的堆,返回合并后的堆顶
int merge(int x, int y)
{if(!x||!y) return x|y;
// 键值小的作为堆顶if (val[x] > val[y])    swap(x, y);r[x] = merge(r[x], y);
// 维护左偏性质if (d[r[x]] > d[l[x]])swap(l[x], r[x]);
// 重新计算距离d[x] = d[r[x]] + 1;return x;
}int find(int x)
{if(fa[x] == x) return x;else return fa[x] = find(fa[x]);}int main()
{scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d", &val[i]);fa[i] = i;}scanf("%d", &m);for (int i = 1; i <= m; i++) {cin >> ord;if (ord == 'M') {scanf("%d%d", &x, &y);if (val[x] < 0 || val[y] < 0) continue;x = find(x), y = find(y);if (x != y) {int t = merge(x, y);fa[x] = fa[y] = t;}} else {scanf("%d", &x);if (val[x] < 0) {puts("0");continue;}x = find(x);printf("%d\n", val[x]);val[x] = -1;fa[x] = merge(l[x], r[x]);fa[fa[x]] = fa[x];}}return 0;
}

转载于:https://www.cnblogs.com/phemiku/p/11620758.html

BZOJ1455罗马游戏相关推荐

  1. bzoj1455罗马游戏*

    bzoj1455罗马游戏 题意: 维护数据结构支持合并和弹出最小值.n≤1000000,m≤100000 题解: 可并堆,注意本题合并时要判断两个节点是否在同一个堆中.本弱写了左偏树和斜堆,发现斜堆比 ...

  2. bzoj1455 罗马游戏

    Description 罗马皇帝很喜欢玩杀人游戏. 他的军队里面有n个人,每个人都是一个独立的团.最近举行了一次平面几何测试,每个人都得到了一个分数. 皇帝很喜欢平面几何,他对那些得分很低的人嗤之以鼻 ...

  3. BZOJ1455: 罗马游戏

    裸可并堆 #include<cstdio> #include<iostream> #include<cstring> #include<cmath> # ...

  4. [bzoj1455]罗马游戏

    题目大意 需要兹瓷集合合并与删去集合内最小值. 可并堆 还能说什么呢,裸的-- #include<cstdio> #include<algorithm> #define fo( ...

  5. 【bzoj1455】罗马游戏 可并堆

    [bzoj1455]罗马游戏 可并堆 2016-05-31  10:04:41 可并堆的裸题. 左偏树(小根堆为例 性质 1.满足堆的性质,每个节点权值小于左右儿子权值 2.每个节点有dis值,表示子 ...

  6. 【BZOJ1455】罗马游戏(左偏树)

    [BZOJ1455]罗马游戏(左偏树) 题面 BZOJ 然而权限题. 题解 左偏树模板题. #include<iostream> #include<cstdio> #inclu ...

  7. BZOJ 1455: 罗马游戏( 配对堆 + 并查集 )

    可并堆水题 --------------------------------------------------------- #include<bits/stdc++.h> using ...

  8. nkoj P3138 罗马游戏

    nkoj P3138 罗马游戏 问题描述 罗马皇帝很喜欢玩杀人游戏. 他的军队里面有n个人,每个人都是一个独立的团. 最近举行了一次比武测试,每个人都得到了一个分数. 皇帝对那些得分很低的人嗤之以鼻. ...

  9. 【BZOJ1455】罗马游戏

    [题目链接] 点击打开链接 [思路要点] 可并堆模板题. [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 10 ...

最新文章

  1. python 使用sax 解析xml 文件
  2. R 数据可视化 : 热图
  3. 你不知道的JavaScript系列(一)—— 类型
  4. Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写
  5. [翻译 EF Core in Action 1.7] MyFirstEfCoreApp访问的数据库
  6. Anaconda创建虚拟环境报错—UnavailableInvalidChannel: The channel is not accessible or is invalid
  7. 创建 Refs 的几种方式
  8. 实现网页布局的自适应 利用@media screen
  9. Axure中SVG矢量图标的使用方法
  10. 蓝桥杯 c语言入门试题,蓝桥杯c语言试题2015
  11. 浅谈视频会议系统的运行与维护
  12. 5分钟外设学堂:耳机不响别慌,换个插头能救活!
  13. 教你如何有效防止DDos攻击?
  14. 唯一ID生成算法剖析,看看这篇就够了
  15. js过滤对象中值为空的属性
  16. [面经整理] 机器/深度学习补充篇
  17. linux下Kdevelop开发基本步骤
  18. 我的成神之路!Python 兵器谱(绝世神兵!收藏必备!)
  19. secret-performance-desktop - 基于javafx的桌面个性化工具
  20. 移动端调试 chrome://inspect/#devices 钉钉开发Android调试微应用

热门文章

  1. Linux中更新pycharm即删除旧的pycharm,装新的pycharm
  2. w10系统excel无法启动服务器,w10excel无法打开怎么办_解决win10系统无法打开excel的方法...
  3. 自定义 Behavior
  4. 测试cpu单核分数软件,最新geekbench5 CPU跑分天梯排行榜
  5. 学习VSC配置opencv
  6. win10一直正在检查更新_win10补丁KB4587587推送 win10预览版20236.1005更新内容汇总_windows10_Windows系列_操作系统...
  7. gb和gib的区别_KB/KiB,MB/MiB,GB/GiB,它们有区别吗?
  8. 动漫游戏培训机构如何用抖音快手招生
  9. 福布斯荐75本经商必读
  10. 探讨一下如何防止撞库。