hihocoder1711 评论框排版[并查集+set]
#include <cstdio>
#include <iostream>
#include <set>
using namespace std;
const int N = 1e5+; struct Block {
long long begin, all_size; //root起始, root子树总大小
long long dis, size, f; //距离父节点起始距离, 自身大小, 父节点标号
bool operator <(const Block &rhs) const {
return begin < rhs.begin;
}
};
Block block[N]; int findf(int x) {//找到标号x的根节点标号, 并让x直接连向根节点
if(x == block[x].f) return x;
int rt = findf(block[x].f);
int f = block[x].f;
block[x].dis += block[f].dis;
block[x].f = block[f].f;
return rt;
}
void merge(int x, int y) { //将标号y所在的子树merge到标号x所在的子树
int fx = findf(x), fy = findf(y);
if(fx == fy) return ;
block[fy].dis = block[fx].all_size;
block[fy].f = fx;
block[fx].all_size += block[fy].all_size;
} set<Block> se; int main() {
int n, k, h, x, tot = ;
char op;
scanf("%d", &n);
for(int i = ; i <= n; i++) {
scanf(" %c", &op);
if(op == 'I') {
scanf("%d%d", &k, &h);
int ID = ++tot;
block[tot] = {k, h, , h, tot};
if(se.empty()) {se.insert(block[ID]); continue ;} auto it = se.upper_bound(block[ID]);
if(it == se.begin()) {
while(it != se.end() && block[ID].begin+block[ID].all_size >= it->begin) {
int f = it->f;
se.erase(it++);
merge(ID, f);
}
se.insert(block[ID]);
}
else { // it != se.begin()
auto tmp = it;
--tmp;
if(tmp->begin + tmp->all_size >= k) {
int f = tmp->f;
se.erase(tmp);
merge(f, tot);
ID = f;//////////////////////////////////////////
}
while(it != se.end() && block[ID].begin+block[ID].all_size >= it->begin) {
int f = it->f;
se.erase(it++);
merge(ID, f);
}
se.insert(block[ID]);
}
}
else {
scanf("%d", &x);
int rt = findf(x);
long long L = block[x].dis+block[rt].begin;
long long R = L+block[x].size-;
printf("%I64d %I64d\n", L, R);
}
}
return ;
} /*
5
I 1 5
I 8 10
I 5 5
Q 3
Q 2
*/
hihocoder1711 评论框排版[并查集+set]的更多相关文章
- HDU 1272 小希的迷宫(并查集) 分类: 并查集 2015-07-07 23:38 2人阅读 评论(0) 收藏
Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就 ...
- Hdu 2473(并查集删除操作) Junk-Mail Filter
有木有非常吊 加强 加强版 啊 ,看了都不敢做了 .后来先做了食物链这个我还是看过的.但还是A不掉,没明确神魔意思 .总而言之.大牛的博客是个好东西.我就那么看了一下,还是不懂怎莫办啊,哎, ...
- <hdu - 1272> 小希的迷宫 并查集问题 (注意特殊情况)
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 Problem Description: 上次Gardon的迷宫城堡小希玩了很久(见Probl ...
- <hdu - 1232> 畅通工程 并查集问题 (注意中的细节)
本题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 结题思路:因为题目是汉语的,那我就不解释题意了,要求的是最少建设的道路,我们可以用并查集来做这 ...
- 并查集+bfs+暴力滑窗 Codeforces Round #356 (Div. 2) E
http://codeforces.com/contest/680/problem/E 题目大意:给你一个n*n的图,然后图上的 . (我们下面都叫做‘点’)表示可以走,X表示不能走,你有如下的操作, ...
- Tarjan 模板,高级并查集
第一个模板有误!!!! 请见谅!!! 要怪就怪HDU吧,竟然让我过了 第二个模板是正确的.请翻到下面看更新 HDU 1269 评论区居然有人说用并查集过了,其实回想一下 求无向图的连通分量,就是并查集 ...
- 搭桥|codevs1002|最小生成树|Prim|并查集|Elena
1002 搭桥 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有一矩形区域的城市中建筑了若干建筑物,如果某两个单元格有一个点 ...
- 【洛谷】P1892 团伙(并查集)+ 求助
题目描述 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友. 两个强盗是同一团伙的 ...
- Luogu P2391 白雪皑皑 && BZOJ 2054: 疯狂的馒头 并查集
4月的时候在luogu上做过 白雪皑皑 这道题,当时一遍AC可高兴了qwq,后来去了个厕所,路上忽然发现自己的做法是错的qwq...然后就咕咕了qwq 今天看到了 疯狂的馒头 ,发现一毛一样OvO.. ...
随机推荐
- Linux入门基础(四):Linux网络基本配置
网络基础 ip编址 ip编址是一个双层编址方案(网络部分和主机部分),一个ip地址标识一个主机(或一个网卡接口) 现在应用最广泛的是IPv4编址,已经开始逐渐向IPv6编址切换 IPv4地址32位长, ...
- 【LeetCode算法题库】Day2:Median of Two Sorted Arrays & Longest Palindromic Substring & ZigZag Conversion
[Q4] There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...
- PHP核心技术——继承与多态
继承: class person{ public $name='Tom'; public $gender; static $money=10000; public function __constru ...
- Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、Spring Data Elasticsearch)
elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介.Java REST Client.Java Client.Spri ...
- GIT问题(二)——add报错
- Python学习之路目录(收藏整理)
目录 Python之路[第一篇]:Python简介和入门 Python之路[第二篇]:Python基础(一) Python之路[第三篇]:Python基础(二) Python之路[第四篇]:模块 ...
- RabbitMQ理论部分
概念 queue 队列 exchange 交换机 bind 绑定 channel 通道 一个发送消息流程包含上述四个概念.消息经过channel传递给exc ...
- nodejs 几篇有用的文章
深入浅出Node.js(三):深入Node.js的模块机制 http://www.infoq.com/cn/articles/nodejs-module-mechanism Node.js简单介绍并实 ...
- 多线程分段下载研究的python实现(一)
我一直对下载文件比较感兴趣.现在我下载文件大部分是用迅雷,但迅雷也有一些不如意的地方,内存占用大,一些不必要的功能太多,不可定制.尤其是最后一点.现在有些下载对useragent,cookie,aut ...
- tr命令详解
基础命令学习目录 原文链接:https://www.cnblogs.com/ginvip/p/6354440.html 什么是tr命令?tr,translate的简写,translate的翻译: [t ...