【BZOJ】1455 罗马游戏 左偏树
题目传送门
这题和洛谷上的左偏树模板的解题思路是一模一样的,所以只要贴上左偏树的模板就好了。
附上AC代码:
#include <cstdio>
#include <cctype>
#include <algorithm>
#define N 1000010
using namespace std;int n,m,dis[N],w[N],x,y,f[N],ls[N],rs[N];void read(int& a){static char c=getchar();a=0;int f=1;while (!isdigit(c)) {if (c=='-') f=-1;c=getchar();}while (isdigit(c)) a=a*10+c-'0',c=getchar();
}int gf(int x){while (f[x]) x=f[x];return x;
}int hb(int a,int b){if (a*b==0) return a+b;if (w[a]>w[b]||(w[a]==w[b]&&a>b)) swap(a,b);rs[a]=hb(rs[a],b);f[rs[a]]=a;if (dis[ls[a]]<dis[rs[a]]) swap(ls[a],rs[a]);dis[a]=dis[rs[a]]+1;return a;
}int main(void){read(n),dis[0]=-1;for (int i=1; i<=n; ++i) read(w[i]);read(m);while (m--){char c=getchar();while (c!='M'&&c!='K') c=getchar();switch (c){case 'M':read(x),read(y);if (w[x]==-1||w[y]==-1) continue;x=gf(x),y=gf(y);if (x!=y) hb(x,y);break;case 'K':read(x);if (w[x]==-1) puts("0");else {x=gf(x),printf("%d\n",w[x]),w[x]=-1;f[ls[x]]=f[rs[x]]=0,hb(ls[x],rs[x]);}break;}}
}
orzLYF大佬,如此的强,在半个月前就把这题A掉了。别问我是怎么知道的。
(因为这题需要权限,而我又没有氪金,所以交这题时我用的是他的号。别问我是怎么知道他的密码的)
【BZOJ】1455 罗马游戏 左偏树相关推荐
- BZOJ 1455 罗马游戏
Description 罗马皇帝很喜欢玩杀人游戏. 他的军队里面有n个人,每个人都是一个独立的团.最近举行了一次平面几何测试,每个人都得到了一个分数. 皇帝很喜欢平面几何,他对那些得分很低的人嗤之以鼻 ...
- BZOJ 1455: 罗马游戏( 配对堆 + 并查集 )
可并堆水题 --------------------------------------------------------- #include<bits/stdc++.h> using ...
- 【BZOJ1455】罗马游戏(左偏树)
[BZOJ1455]罗马游戏(左偏树) 题面 BZOJ 然而权限题. 题解 左偏树模板题. #include<iostream> #include<cstdio> #inclu ...
- 【左偏树】【bzoj 2333】: [SCOI2011]棘手的操作
http://www.lydsy.com/JudgeOnline/problem.php?id=2333 带lazy的左偏树,由于我不会写,所以借(chao)鉴(xi)了一下hzwer #includ ...
- 【学习笔记】浅谈短小可爱的左偏树(可并堆)
文章目录 左偏树 左偏树的合并(merge)操作 例题 罗马游戏 [Apio2012]dispatching [JLOI2015]城池攻占 [Baltic2004]sequence 左偏树 左偏树是一 ...
- 【左偏树】【P3261】 [JLOI2015]城池攻占
Description 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池.这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其 ...
- [2018.12.6]左偏树
其实NOIp之前就学会了...结果咕到了现在... 我们都知道堆.但是很少有人会手写堆.因为我们有STL,而且手写堆码量不小(据说是吧?没写过). 而且堆的\(Merge\)操作又慢又麻烦. 于是就有 ...
- 《程序设计解题策略》——1.6 利用左偏树实现优先队列的合并
本节书摘来自华章计算机<程序设计解题策略>一书中的第1章,第1.6节,作者:吴永辉 王建德 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.6 利用左偏树实 ...
- 【洛谷3377】 左偏树(可并堆)
前言 其实我是不小心翻线性基的时候看见的. Solution 左偏树只会模板,挖坑待补 代码实现 #include<stdio.h> #include<stdlib.h> #i ...
最新文章
- Rational Rose正逆向工程(类图转Java代码,Java代码转类图)
- 可以ping通 但ssh: connect to host 192.168.0.2 port 22: Connection refused
- 【LeetCode笔记】406. 根据身高重建队列(Java、偏数学)
- VMware vSphere 6.7主机与虚拟机高级管理
- Apache20、lighttpd、nginx的比较[zt]
- 实话实说!为什么说闷头学Python是自欺欺人?
- cordova 安卓文件多选_LAMMPS从研一到延毕:利用MS建模生成反应力场所需的data文件...
- 《Java Web开发入门很简单》学习笔记
- java中aotomicInteger_面试官:你说一下对Java中的volatile的理解吧!
- win10 安装 framework3.5
- epoll的两种触发模式ET和LT
- 柴静《看见》发布会。。。
- 电脑定时执行的软件 - 定时执行专家
- 【建模算法】Python调用Gurobi求解TSP问题
- css朗逸保险丝盒机舱,【朗逸保险盒】朗逸保险盒位置图解、拆卸方法_车主指南...
- 《房债》书中的精髓:现代金融系统让全世界的人同处一艘经济大船上,一些人搞坏了船,所有的人都跟着遭殃。
- 羲和能源大数据平台使用教程
- redis发布订阅与集群
- (C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)
- B1030 (完美数列)
热门文章
- 【人工智能】人脸颜值研究综述
- 杭漂十年!我从「租客」到「房东」
- BZOJ 1038: [ZJOI2008]瞭望塔
- 机器学习为什么使用归一化? 有哪些归一化算法?
- 信道编码译码(ECC)学习笔记
- PC DMIS三坐标产品测量编程视频教程+资料
- C语言 一元二次方程
- Hadoop大数据平台实践(二):Hadoop生态组件的学习文档
- 价值文明的新纪元——解析Nirvana Chain钱包生态
- 佛罗伦萨小镇与雅诗阁中国达成战略合作;日立电梯25年来为中国市场提供93万台电梯 | 美通企业日报...