#L0762. 笛卡尔树构建
笛卡尔树构建
题目背景
本题部分写法可能触发 GCC15.1 在 O2 下的编译器 bug。建议 C++ 用户以 C++14(GCC9)提交代码。
题目描述
给定一个 的排列 ,构建其笛卡尔树。
即构建一棵二叉树,满足:
- 每个节点的编号满足二叉搜索树的性质。
- 节点 的权值为 ,每个节点的权值满足小根堆的性质。
输入格式
第一行一个整数 。
第二行一个排列 。
输出格式
设 分别表示节点 的左右儿子的编号(若不存在则为 )。
一行两个整数,分别表示 $\displaystyle\bigoplus_{i=1}^{n} i \times (l_i + 1)$ 和 $\displaystyle\bigoplus_{i=1}^{n} i \times (r_i + 1)$。
样例
5
4 1 3 2 519 21
提示
【样例解释】
| $i$ | $l_i$ | $r_i$ |
|---|---|---|
| $1$ | $0$ | $0$ |
| $2$ | $1$ | $4$ |
| $3$ | $0$ | $0$ |
| $4$ | $3$ | $5$ |
| $5$ | $0$ | $0$ |
【数据范围】
对于 的数据,。
对于 的数据,。
对于 的数据,。
对于 的数据,。
对于 的数据,。
难度
普及+/提高-
通过率
—
尝试
0
已通过
0
- ID
- 1490
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者