[学习笔记] pd_ds黑科技
https://www.cnblogs.com/jiqimin/p/11226809.html
丢个链接,跑路
// Author: wlzhouzhuan
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include <bits/stdc++.h>
#include <ext/pb_ds/priority_queue.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ll long long
#define ull unsigned long long
#define rint register int
#define rep(i, l, r) for (rint i = l; i <= r; i++)
#define per(i, l, r) for (rint i = l; i >= r; i--)
#define mset(s, _) memset(s, _, sizeof(s))
#define pb push_back
#define pii pair <int, int>
#define mp(a, b) make_pair(a, b)
inline int read() {
int x = 0, neg = 1; char op = getchar();
while (!isdigit(op)) { if (op == '-') neg = -1; op = getchar(); }
while (isdigit(op)) { x = 10 * x + op - '0'; op = getchar(); }
return neg * x;
}
inline void print(int x) {
if (x < 0) { putchar('-'); x = -x; }
if (x >= 10) print(x / 10);
putchar(x % 10 + '0');
}
const int N = 105;
#define it_min __gnu_pbds::priority_queue <pii, greater <pii>, pairing_heap_tag>::point_const_iterator
#define it_max __gnu_pbds::priority_queue <pii, less <pii>, pairing_heap_tag>::point_const_iterator
__gnu_pbds::priority_queue <pii, greater <pii>, pairing_heap_tag> pq_min[N];
__gnu_pbds::priority_queue <pii, less <pii>, pairing_heap_tag> pq_max[N];
unordered_map <int, it_min> fa;
unordered_map <int, it_max> fb;
int n, m;
int main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> n >> m;
for (rint i = 1; i <= m; i++) {
int opt;
cin >> opt;
if (opt == 1) {
int x, y;
cin >> x >> y;
it_min v1 = pq_min[x].push({y, i}); fa[i] = v1;
it_max v2 = pq_max[x].push({y, i}); fb[i] = v2;
} else if (opt == 2) {
int x;
cin >> x;
if (pq_min[x].empty()) cout << "-1\n";
else {
pii ans = pq_min[x].top();
cout << ans.first << '\n';
pq_min[x].pop();
pq_max[x].erase(fb[ans.second]);
}
} else if (opt == 3) {
int x;
cin >> x;
if (pq_max[x].empty()) cout << "-1\n";
else {
pii ans = pq_max[x].top();
cout << ans.first << '\n';
pq_max[x].pop();
pq_min[x].erase(fa[ans.second]);
}
} else {
int x, y;
cin >> x >> y;
pq_min[y].join(pq_min[x]);
pq_max[y].join(pq_max[x]);
}
}
return 0;
}
[学习笔记] pd_ds黑科技的更多相关文章
- <老友记>学习笔记
这是六个人的故事,从不服输而又有强烈控制欲的monica,未经世事的千金大小姐rachel,正直又专情的ross,幽默风趣的chandle,古怪迷人的phoebe,花心天真的joey——六个好友之间的 ...
- 黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南
目录 修改默认源,为apt-get安装提速 安装python 和 python pip 安装 zsh 安装powerline-font中的特定字体 安装powerline-shell 修改~目录下的配 ...
- Box 黑科技 —— 支持手机端反编译 !Box 黑科技 —— 支持手机端反编译 !
项目地址: Box 文末扫码获取最新安装包 . 前言 有将近一个月没有更新文章了,一方面在啃 AOSP ,消化起来确实比较慢.在阅读的过程中,有时候上来就会陷入源码细节,其实这是没有必要的.刚开始更多 ...
- 学习笔记之Coding / Design / Tool
CODING 学习笔记之代码大全2 - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5301123.html 学习笔记之编程珠玑 Programm ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- 两千行PHP学习笔记
亲们,如约而至的PHP笔记来啦~绝对干货! 以下为我以前学PHP时做的笔记,时不时的也会添加一些基础知识点进去,有时还翻出来查查. MySQL笔记:一千行MySQL学习笔记http://www.cnb ...
- 初学c# -- 学习笔记(一)
初学c# -- 学习笔记(一) 学习C#了,参考许多资料,一步步学习.这一段学习ajax的工作原理,参照其他例子写了web版的群聊小程序,全部文件代码也就不到300行,很简单.使用时先输入用户名,点确 ...
- [自己动手玩黑科技] 1、小黑科技——如何将普通的家电改造成可以与手机App联动的“智能硬件”
NOW, 步 将此黑科技传授予你~ 一.普通家电控制电路板分析 普通家电,其人机接口一般由按键和指示灯组成(高端的会稍微复杂,这里不考虑) 这样交互过程,其实就是:由当前指示灯信息,按照操作流程按相应 ...
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
随机推荐
- 【Android开发】【布局】 仿QQ的UI
Demo地址
- 何使用派生类指针指向基类,即downcast向下转型?
基类指针指向派生类,我们已经很熟了.假如我们想用派生类反过来指向基类,就需要有两个要求:1)马克-to-win:基类指针开始时指向派生类,2)我们还需要清清楚楚的转型一下. if you want t ...
- 自定义API(Jar包)的创建与使用(简单实现案例)
@ 目录 学习内容 1. 自定义工具类 2. 导出jar 3. 加载Jar包 4. 调用自定义的API方法 总结 学习内容 1. 自定义工具类 新建一个java项目,然后创建包和工具类StringUt ...
- python中其他数据类型内置方法
补充字符串数据类型内置方法 1.移除字符串首尾的指定字符可以选择方向1: s1 = '$$$jason$$$' print(s1.strip('$')) # jason print(s1.lstrip ...
- Blazor 生命周期
执行周期 1. SetParametersAsync 2. OnInitializedAsync(调用两次) 和 OnInitialized: 3. OnParametersSetAsync 或 On ...
- Java学习day38
Java内存:1.堆:存放new的对象和数组:可以被所有线程共享,不会存放别的对象引用 2.栈:存放基本变量类型(会包含这个基本类型的具体数值):存放对象的变量(会存放这个引用在堆里面的具体地址) 3 ...
- PuddingSwap联合 ESBridge举办愚人节“币圈愚话”联合空投活动,完成任务即可获得惊喜奖励
据官方消息,4月1日0:00- 4月2日23:59,PuddingSwap联合 ESBridge举办"币圈愚话"空投活动,完成任务即可获得惊喜奖励. 此次PuddingSwap联合 ...
- AQS源码阅读
简介 AQS 全程为 AbstractQueuedSynchronizer , 在 java.util.concurrent.locks包下的一个抽象类. 类的具体作用以及设计在开始类描述信息里面就有 ...
- 【ConcurrentHashMap】浅析ConcurrentHashMap的构造方法及put方法(JDK1.7)
目录 引言 代码讲解 构造方法 put方法 ensureSegment Segment.put 引言 ConcurrentHashMap的数据结构如下. 和HashMap的最大区别在于多了一层Segm ...
- ghostnet论文解析:ghost
创建日期: 2020-03-02 17:02:54 简介: GhostNet是2020CVPR录用的一篇对卷积操作进行改进的论文.文章的核心内容是Ghost模块(Ghost Module),可以用来替 ...