heap 堆
2024-08-29 13:03:56
实现了交换、向上维护,向下维护的原子功能,其它插入、删除、修改的功能应该不在话下。
于是有了代码:(luogu3378模板题)
// luogu-judger-enable-o2
#include <cctype>
#include <cstdio>
#include <algorithm>
using namespace std; const int maxn=1e6+, INF=1e9;
int v[maxn], totn;
void ins(int x){ //插入值为x的点
int now; v[now=++totn]=x;
while (now!=){
if (v[now]<v[now>>]) swap(v[now], v[now>>]), now>>=;
else break;
}
}
void del(int now){ //删除now号点(空间上不释放这个结点,结点个数也不减1,只是把它移到底部)
v[now]=INF; int p=;
while ((now<<)<=totn){ //当now还可以往下走时
if (v[now<<]<v[now<<|]||(now<<|)>totn) p=; else p=;
swap(v[now], v[now<<|p]); now=now<<|p;
}
} int n, op, t; inline void get(int &x){
char c; int flag=;
for (; !isdigit(c=getchar()); ) if (c=='-') flag=-;
for (x=c-; c=getchar(), isdigit(c); )
x=(x<<)+(x<<)+c-;
if (flag==-) x=-x;
} int main(){
get(n);
for (int i=; i<=n; ++i){
get(op);
if (op==){ get(t); ins(t); }
if (op==) printf("%d\n", v[]);
if (op==) del();
}
return ;
}
最新文章
- Xenko基础API笔记2-手势
- JSON数据格式
- Maven进价:Maven构建错误汇总
- 【原创】Js:日期处理(日期格式必须【yyyy-mm-dd】才能转成long的毫秒!其他的不是【年-月-日】的格式,结果会是【NaN】)
- mysql root密码破解
- Android SDK无法更新问题解决 ---- 还可解决无法上google的问题
- codeforces 675C Money Transfers map
- Python代码一定要对齐
- JavaFX学习之路:详细解释JavaFX架构和框架
- 从foreach语句枚举元素看数组
- 如何共享数据?- 每天5分钟玩转 Docker 容器技术(41)
- Python自学笔记-面向对象相关(Mr seven)
- 论python3下“多态”与“继承”中坑
- Python 内置的一些高效率函数用法
- log4j日志框架的使用
- 传统C/S软件的";断骨增高";
- webhook: requestbin
- 解决Postman User-Agent 设置失效
- 《贝贝GO》隐私政策
- .NET WebService 入门
热门文章
- elasticsearch的store属性跟_source字段——如果你的文档长度很长,存储了_source,从_source中获取field的代价很大,你可以显式的将某些field的store属性设置为yes,否则设置为no
- hbase_异常_01_Hbase: Failed to become active master
- Failed to install xxxx.apk on device &#39;emulator-5554!
- opensource mcu
- ACM学习历程—ZOJ 3868 GCD Expectation(莫比乌斯 || 容斥原理)
- 洛谷 P2777 [AHOI2016初中组]自行车比赛
- 洛谷【P1561】[USACO12JAN]爬山Mountain Climbing
- 通过pip3安装ipython
- 面向对象要点(this关键字)
- JavaScript中的BOM知识框架