博客
关于我
P5854 【模板】笛卡尔树
阅读量:331 次
发布时间:2019-03-04

本文共 688 字,大约阅读时间需要 2 分钟。

题目

思路

类似于treap,每个节点的编号满足二叉搜索树的性质。节点 i 的权值为 p i p_i pi​,每个节点的权值满足小根堆的性质。

code:

#include
#include
#include
#include
#include
using namespace std;int n,a[10000008][4],tot;inline int read(){ int f=0; char c=getchar(); while (c<'0'||c>'9') c=getchar(); while (c>='0'&&c<='9') f=f*10+c-'0',c=getchar(); return f;}int main(){ n=read(); for (int i=1;i<=n;i++) a[i][0]=read(); a[++tot][1]=0; for (int i=1;i<=n;i++) { while (tot&&a[a[tot][1]][0]>a[i][0]) a[i][2]=a[tot--][1]; if (a[tot][1]) a[a[tot][1]][3]=i; a[++tot][1]=i; } long long l=0,r=0; for (int i=1;i<=n;i++) l^=1ll*i*(a[i][2]+1),r^=1ll*i*(a[i][3]+1); cout<
<<' '<

转载地址:http://vnye.baihongyu.com/

你可能感兴趣的文章
dll路径加载顺序
查看>>
悬垂指针和野指针的区别
查看>>
软考相关试题
查看>>
顺序表的操作
查看>>
常量表达式
查看>>
POD类型
查看>>
安装HDF5及在VS下配置HDF5
查看>>
const与常量,傻傻分不清楚~
查看>>
图解哈希表及其原理
查看>>
Head First设计模式——迭代器模式
查看>>
Head First设计模式——中介者模式和备忘录模式
查看>>
MongoDB版本及存储引擎区别
查看>>
shell echo单行和多行文字定向写入到文件中
查看>>
解析树状数组
查看>>
AtCoder Beginner Contest 100 题解
查看>>
【数据结构】可持久化线段树初步
查看>>
克拉默法则&矩阵分块:线性代数学习笔记2
查看>>
后缀树
查看>>
Java高性能编程之CAS与ABA及解决方法
查看>>
从BIO到Netty的演变
查看>>