P17880 玉兰 / yulan
题目描述
给定长度为 $n$ 的正整数序列 $a,b$,定义序列 $c$ 的逆康托展开序列为:
- 设 $m$ 为序列长度,对于所有 $1\le i\le m$,$c_i\gets \min\{c_i,i\}$;
- 构造一个 $1\sim m$ 的排列 $p$,使得对于所有 $1\le i\le m$,均有 $\sum_{j=1}^{i}[p_j\le p_i]=c_i$;可以证明这样的 $p$ 是存在且唯一的,这个排列 $p$ 就是 $c$ 的逆康托展开序列。其中 $[P]$ 在命题 $P$ 成立时为 $1$,否则为 $0$。
$q$ 次查询,每次给定 $l,r,k$,求以 $a_l$ 个 $b_l$,$a_{l+1}$ 个 $b_{l+1}$,$\cdots$,$a_r$ 个 $b_r$ 依次组成的序列的逆康托展开序列中,第 $k$ 个元素的值。
**本题输入经过加密**,输入会给定 $type$,设某次输入的三个数为 $l',r',k'$,设上一次询问的答案为 $lst$(若当前为第一次询问则 $lst=0$),则 $l=l'\oplus (lst\times type),r=r' \oplus (lst\times type),k=k'\oplus (lst\times type)$,其中 $\oplus$ 表示按位异或运算。
输入格式
输入的第一行包含两个非负整数 $c,type$,分别表示测试点编号和加密参数。$c=0$ 表示该测试点为样例。
第二行包含两个正整数 $n, q$,分别表示序列长度与查询次数。
第三行包含 $n$ 个正整数 $a_1, a_2, \ldots, a_n$。
第四行包含 $n$ 个正整数 $b_1, b_2, \ldots, b_n$。
输入的第 $i+4$ $(1\le i\le q)$ 行包含三个非负整数 $l',r',k'$,分别表示加密后的 $l,r,k$。
输出格式
对于每次询问,输出一行一个数,表示以 $a_l$ 个 $b_l$,$a_{l+1}$ 个 $b_{l+1}$,$\cdots$,$a_r$ 个 $b_r$ 依次组成的序列的逆康托展开序列中,第 $k$ 个元素的值。
说明/提示
**【样例 1 解释】**
前两次询问的区间均为 $[1,4]$。展开后得到 $[2,2,4,2,2,2,1]$,将第 $i$ 项与 $i$ 取最小值后,得到 $[1,2,3,2,2,2,1]$。对应的排列为 $[2,6,7,5,4,3,1]$,其第 $2$ 项和第 $5$ 项分别为 $6$ 和 $4$。
**【样例 2 解释】**
该样例满足 $type=1$,且序列与解密后的查询都与样例 1 相同。
**【样例 3 解释】**
第一次询问所得到的排列为 $[5\times 10^9,5\times 10^9-1,\ldots,1]$,其中第一个数为 $5\times 10^9$。
**【样例 4】**
见选手目录下的 `yulan/yulan4.in` 与 `yulan/yulan4.ans`。
该样例满足测试点 $1$ 的条件限制。
**【样例 5】**
见选手目录下的 `yulan/yulan5.in` 与 `yulan/yulan5.ans`。
该样例满足测试点 $2$ 的条件限制。
**【样例 6】**
见选手目录下的 `yulan/yulan6.in` 与 `yulan/yulan6.ans`。
该样例满足测试点 $3\sim 4$ 的条件限制。
**【样例 7】**
见选手目录下的 `yulan/yulan7.in` 与 `yulan/yulan7.ans`。
该样例满足测试点 $5\sim 6$ 的条件限制。
**【样例 8】**
见选手目录下的 `yulan/yulan8.in` 与 `yulan/yulan8.ans`。
该样例满足测试点 $7\sim 9$ 的条件限制。
**【样例 9】**
见选手目录下的 `yulan/yulan9.in` 与 `yulan/yulan9.ans`。
该样例满足测试点 $10$ 的条件限制。
**【样例 10】**
见选手目录下的 `yulan/yulan10.in` 与 `yulan/yulan10.ans`。
该样例满足测试点 $11$ 的条件限制。
**【样例 11】**
见选手目录下的 `yulan/yulan11.in` 与 `yulan/yulan11.ans`。
该样例满足测试点 $12\sim 13$ 的条件限制。
**【样例 12】**
见选手目录下的 `yulan/yulan12.in` 与 `yulan/yulan12.ans`。
该样例满足测试点 $14\sim 15$ 的条件限制。
**【样例 13】**
见选手目录下的 `yulan/yulan13.in` 与 `yulan/yulan13.ans`。
该样例满足测试点 $16$ 的条件限制。
**【样例 14】**
见选手目录下的 `yulan/yulan14.in` 与 `yulan/yulan14.ans`。
该样例满足测试点 $17$ 的条件限制。
**【样例 15】**
见选手目录下的 `yulan/yulan15.in` 与 `yulan/yulan15.ans`。
该样例满足测试点 $18\sim 19$ 的条件限制。
**【样例 16】**
见选手目录下的 `yulan/yulan16.in` 与 `yulan/yulan16.ans`。
该样例满足测试点 $20\sim 21$ 的条件限制。
**【样例 17】**
见选手目录下的 `yulan/yulan17.in` 与 `yulan/yulan17.ans`。
该样例满足测试点 $22\sim 25$ 的条件限制。
**【数据范围】**
对于所有测试数据,均有:
- $1\le n\le 5\times10^5$;
- $1\le q\le 5\times10^5$;
- $type\in\{0,1\}$;
- 对于所有 $1\le i\le n$,均有 $1\le a_i,b_i\le 10^9$;
- 对于每组询问,均有 $1\le l\le r\le n$,$1\le k\le \sum_{i=l}^ra_i$。
::cute-table{tuack}
|测试点编号 |$n,q\le$ |$type=$|特殊性质|
|:-------:|:--------:|:-----:|:--:|
|$1$ |$18$ |$0$ |A |
|$2$ |$500$ |^ |^ |
|$3,4$ |$2\,500$ |^ |^ |
|$5,6$ |$8\,000$ |^ |^ |
|$7\sim 9$|^ |^ |无 |
|$10$ |$10^5$ |^ |A |
|$11$ |^ |^ |B |
|$12,13$ |^ |^ |无 |
|$14,15$ |^ |$1$ |^ |
|$16$ |$5\times 10^5$|$0$ |A |
|$17$ |^ |^ |B |
|$18,19$ |^ |^ |无 |
|$20,21$ |^ |$1$ |A |
|$22\sim 25$ |^ |^ |无 |
特殊性质 A:对于所有 $1\le i\le n$,均有 $a_i=1$。
特殊性质 B:对于所有 $1\le i