博客
关于我
P5854 【模板】笛卡尔树
阅读量:332 次
发布时间: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/

你可能感兴趣的文章
ForkJoinPool线程池
查看>>
【Struts】配置Struts所需类库详细解析
查看>>
Java面试题:Servlet是线程安全的吗?
查看>>
DUBBO高级配置:多注册中心配置
查看>>
Java集合总结系列2:Collection接口
查看>>
Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome
查看>>
大白话说Java反射:入门、使用、原理
查看>>
集合系列 Set(八):TreeSet
查看>>
JVM基础系列第11讲:JVM参数之堆栈空间配置
查看>>
MySQL用户管理:添加用户、授权、删除用户
查看>>
比技术还重要的事
查看>>
linux线程调度策略
查看>>
软中断和实时性
查看>>
Linux探测工具BCC(可观测性)
查看>>
Opentelemetry Metrics SDK
查看>>
流量控制--2.传统的流量控制元素
查看>>
SNMP介绍及使用,超有用,建议收藏!
查看>>
SDUT2161:Simple Game(NIM博弈+巴什博弈)
查看>>
51nod 1596 搬货物(二进制处理)
查看>>
来自星星的祝福(容斥+排列组合)
查看>>