【题目链接】

  • 点击打开链接

【思路要点】

  • 可并堆模板题。

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN    1000005
struct Node {int father, value;int child[2], depth[2];
};
int n, m;
Node a[MAXN];
bool killed[MAXN];
int merge(int x, int y) {if (x == 0) return y;if (y == 0) return x;if (a[x].value > a[y].value) swap(x, y);a[x].child[1] = merge(a[x].child[1], y);a[a[x].child[1]].father = x;a[x].depth[1] = 1 + max(a[a[x].child[1]].depth[0], a[a[x].child[1]].depth[1]);if (a[x].depth[1] > a[x].depth[0]) {swap(a[x].child[0], a[x].child[1]);swap(a[x].depth[0], a[x].depth[1]);}return x;
}
int root(int x) {if (a[x].father == 0) return x;else return root(a[x].father);
}
int main() {scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%d", &a[i].value);scanf("%d", &m);for (int i = 1; i <= m; i++) {char opt;scanf("\n%c", &opt);if (opt == 'M') {int x, y;scanf("%d%d", &x, &y);if (killed[x] || killed[y]) continue;int tmp = root(x), tnp = root(y);if (tmp == tnp) continue;else merge(tmp, tnp);} else {int x;scanf("%d", &x);if (killed[x]) {printf("0\n");continue;}int tmp = root(x);printf("%d\n", a[tmp].value);killed[tmp] = true;a[merge(a[tmp].child[0], a[tmp].child[1])].father = 0;}}return 0;
}

【BZOJ1455】罗马游戏相关推荐

  1. bzoj1455罗马游戏*

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

  2. BZOJ1455罗马游戏

    左偏树裸题 (搞板子搞到绝望x //罗马游戏 #include <bits/stdc++.h> using namespace std; const int N = 1000050; in ...

  3. bzoj1455 罗马游戏

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

  4. BZOJ1455: 罗马游戏

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

  5. [bzoj1455]罗马游戏

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

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

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

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

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

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

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

  9. nkoj P3138 罗马游戏

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

最新文章

  1. ES6深入学习记录(一)class方法相关
  2. HDU1203_I NEED A OFFER!【01背包】
  3. weblogic查看内存情况
  4. php网页生命周期函数,PHP的生命周期
  5. 使用CLion的时候,对于cmake的使用
  6. python dataframe分组求和,pandas datafram中按特定月份分组和求和值
  7. 你可能需要为你的 APP 适配 iOS 11
  8. maven父子工程 + springboot
  9. css3 弹性盒模型 变化
  10. 数据预处理与特征工程—11.分层采样
  11. 转:Ajax与CustomErrors的尴尬
  12. Swift - 设置UIView的背景色和背景图片
  13. 腕能助手android9,腕间应用助手(com.gmf.watchapkassistant) - 1.7 - 应用 - 酷安
  14. 一般系统论的基本概念
  15. 大师级思考者是怎么探索事物本质的?
  16. 【Linux应用】Clonezilla使用指南
  17. python三国演义人物出场统计txt文本_python实例:三国演义TXT文本词频分析
  18. ET框架学习——消息系统之四
  19. 回归中的相关度和决定系数
  20. js转换中文为拼音以及首字母

热门文章

  1. 入侵服务器挖矿和诈骗事件频发 | 零时科技区块链安全周报
  2. 数字地球与计算机技术联系,关于数字地球应用前景的正确说法是
  3. java字符转成ncr_用Java打印所有可能的nCr组合
  4. 【源码】基于lévy飞行的随机蛙跳算法及其在连续优化问题中的应用
  5. 《魔兽世界》正式发布怀旧服创建人物时间
  6. Python爬虫之爬取起点中文网
  7. 爬取起点中文网字体反爬取
  8. 体感交互动画与游戏概述
  9. ORACLE sequence各参数及创建修改删除使用详解示例
  10. Linux内存泄漏检测方法总结