题目大意

需要兹瓷集合合并与删去集合内最小值。

可并堆

还能说什么呢,裸的……

#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
const int maxn=1000000+10;
int fa[maxn],dis[maxn],left[maxn],right[maxn],a[maxn],root[maxn];
bool bz[maxn];
int i,j,k,l,t,n,m;
char ch;
char get(){char ch=getchar();while (ch!='M'&&ch!='K') ch=getchar();return ch;
}
int read(){int x=0;char ch=getchar();while (ch<'0'||ch>'9') ch=getchar();while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x;
}
int getfa(int x){return fa[x]?fa[x]=getfa(fa[x]):x;
}
int merge(int x,int y){if (!x||!y) return x+y;if (a[x]>a[y]) swap(x,y);right[x]=merge(right[x],y);if (dis[left[x]]<dis[right[x]]) swap(left[x],right[x]);dis[x]=dis[right[x]]+1;return x;
}
int deletemin(int x){return merge(left[x],right[x]);
}
int main(){n=read();fo(i,1,n) a[i]=read(),root[i]=i;m=read();fo(i,1,m){ch=get();if (ch=='M'){j=read();k=read();if (bz[j]||bz[k]) continue;j=getfa(j);k=getfa(k);if (j==k) continue;fa[j]=k;root[k]=merge(root[j],root[k]);}else{j=read();if (bz[j]) printf("0\n");else{j=getfa(j);printf("%d\n",a[root[j]]);bz[root[j]]=1;root[j]=deletemin(root[j]);}}}
}

[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】罗马游戏 可并堆

    [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. 仅用 4 小时,吃透“百度太行”背后硬科技!
  2. mssql的T-SQL教程(从建登陆到建库、表和约束)
  3. 【还有这种网站?】庆哥终于知道为什么他的数据结构与算法学的那么好了
  4. angularjs 添加拦截器
  5. 如何构建自己的SIP SERVER!
  6. 清华计算机系教学计划,清华大学电子信息科学与技术教学计划
  7. 金三银四Java面试的一些感受,实战篇
  8. android 整合最新X5WebView 以及离线安装教程
  9. Windows CE 5.0 五笔输入法
  10. 激光共聚焦如何选择荧光染料
  11. YY 数据库平台化建设实践
  12. 基于[三星6818]I2C驱动开发的0.96寸oled屏
  13. k8s nginx ingress 显示证书错误
  14. beautify配置
  15. 计算机英语ppt答辩,急求英语答辩PPT范文
  16. python独立样本t检验 图_Python-两独立样本资料t检验
  17. Java桌面应用程序设计新贵:SWT简介
  18. Scrapy入门到放弃06:Spider中间件
  19. 头条搬砖最新实操玩法
  20. 管理沟通 移情原则_解决技术上的移情差距

热门文章

  1. linux mint/ubuntu离线安装intel 3165驱动
  2. Java中文汉字排序
  3. 最新版勤哲Excel服务器V2017.13.0.1无限用户支持手机APP,微信,任意安装,支持后续升级
  4. ncr管理系统_完全拆解小米智能电动车【图解】
  5. Leetcode刷题100天—49. 字母异位词分组( 排序)—day37
  6. 程序员初学者频繁使用count(*),被组长批评后怒怼:性能并不拉垮
  7. C++ 内存泄露和检测
  8. 心脏病和卒中非传统风险因素在女性中的上升幅度超过男性
  9. java的while、do while循环和案例
  10. 使用微软自带输入法输入英文之间间距突然变大