AT_1_ttpc2024_1_m.Cartesian Trees
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个排列 A=(A1,A2,…,AN),其为 1 到 N 的数字重新排序所得。对于每个区间 (l,r)(满足 1≤l≤r≤N),我们定义一种叫做 Cartesian Tree 的结构 C(l,r),定义如下:
- C(l,r) 是一个有根二叉树,包含 r−l+1 个节点。树的根节点记为 rt。
- 整数 m 是唯一能使 Am=min{Al,Al+1,…,Ar} 成立的值。
- 若 l<m,则 rt 的左子树构造为 C(l,m−1);否则,rt 没有左子树。
- 若 m<r,则 rt 的右子树构造为 C(m+1,r);否则,rt 没有右子树。
现在给出 Q 个区间对 (l1,r1),(l2,r2),…,(lQ,rQ),需要你判断这些区间内所构造的 Cartesian Tree 中,有多少种是不一样的。具体而言,两个 Cartesian Tree 被认为是相同的,当且仅当它们的结构完全相同。即:
- 如果 X 的根节点 rtX 有左子树,那么 Y 的根节点 rtY 也必须有左子树,而且 X 和 Y 的左子树构造的 Cartesian Tree 要完全相同。
- 如果 X 的根节点 rtX 没有左子树,那么 Y 的根节点 rtY 也不能有左子树。
- 如果 X 的根节点 rtX 有右子树,那么 Y 的根节点 rtY 也必须有右子树,而且 X 和 Y 的右子树构造的 Cartesian Tree 要完全相同。
- 如果 X 的根节点 rtX 没有右子树,那么 Y 的根节点 rtY 也不能有右子树。
输入格式
输入包含一行,以以下格式给出:
N A1 A2 … AN Q l1 r1 l2 r2 ⋮ lQ rQ
输出格式
输出一种整数,表示不一样的 Cartesian Tree 的数量。
输入输出样例
输入#1
6 1 4 2 6 3 5 3 1 4 2 5 3 6
输出#1
2
输入#2
4 1 2 3 4 10 1 1 2 2 3 3 4 4 1 2 2 3 3 4 1 3 2 4 1 4
输出#2
4
输入#3
10 3 8 4 7 2 5 9 10 1 6 13 5 8 2 6 7 9 3 8 3 5 2 4 4 6 1 9 3 7 6 9 2 10 4 9 3 9
输出#3
11
说明/提示
- 所有输入均为整数。
- 1≤N≤4×105
- A 是 (1,2,…,N) 经过重新排列得到的。
- 1≤Q≤4×105
- 1≤li≤ri≤N,对所有 1≤i≤Q 成立。
- 对任意的 i=j,(li,ri)=(lj,rj)。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?