AT_abc431_g.[ABC431G] One Time Swap 2
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 N 的整数序列 A=(A1,A2,…,AN)。
对于一对整数 (l,r) (1≤l<r≤N),定义 f(l,r) 为将 A 的第 l 个元素与第 r 个元素互换后得到的整数序列。
请用如下过程生成长度为 2N(N−1) 的整数序列序列 B=(B1,B2,…,B2N(N−1)):
- 准备一个空序列 B=()。
- 对于每一对整数 (l,r) (1≤l<r≤N),将 f(l,r) 加入 B。
- 按字典序(即串的字典序)对 B 的各个序列进行排序。
现在给定 Q 个询问,请依次处理每个询问。第 i 个询问如下:
- 给定一个整数 k,找出一对整数 (l,r) (1≤l<r≤N),使得 Bk=f(l,r),并输出这对整数。
什么是序列的字典序?对于两个序列 S=(S1,S2,…,S∣S∣) 和 T=(T1,T2,…,T∣T∣),我们说 S 字典序小于 T,当且仅当满足以下两个条件之一。这里 ∣S∣ 和 ∣T∣ 表示 S 和 T 的长度。
- ∣S∣<∣T∣ 且 (S1,S2,…,S∣S∣)=(T1,T2,…,T∣S∣)。
- 存在一个整数 1≤i≤min{∣S∣,∣T∣},使得以下两点都成立:
- (S1,S2,…,Si−1)=(T1,T2,…,Ti−1)
- Si 小于 Ti(按数值比较)。
输入格式
输入按以下格式给出:
N Q A1 A2 … AN query1 query2 ⋮ queryQ
每个查询的格式如下:
k
输出格式
输出 Q 行。第 i 行应包含该查询的答案,格式如下:
l r
如果有多组解,输出任意一组都视为正确。
输入输出样例
输入#1
4 3 1 2 1 2 1 3 5
输出#1
2 3 2 4 1 2
输入#2
10 10 1 1 2 7 6 3 5 7 3 3 21 36 9 17 13 24 7 45 33 1
输出#2
6 8 2 4 5 7 9 10 8 9 3 9 5 9 1 8 2 10 4 10
说明/提示
样例解释 1
f(1,2)=(2,1,1,2), f(1,3)=(1,2,1,2), f(1,4)=(2,2,1,1), f(2,3)=(1,1,2,2), f(2,4)=(1,2,1,2), f(3,4)=(1,2,2,1)。
按字典序排序这六组序列后,得到 B=((1,1,2,2),(1,2,1,2),(1,2,1,2),(1,2,2,1),(2,1,1,2),(2,2,1,1))。
- 对于第 1 个询问,唯一满足 B1=(1,1,2,2)=f(l,r) 的 (l,r) 为 (2,3)。
- 对于第 2 个询问,所有满足 B3=(1,2,1,2)=f(l,r) 的 (l,r) 为 (1,3),(2,4),这两组都可选。
- 对于第 3 个询问,唯一满足 B5=(2,1,1,2)=f(l,r) 的 (l,r) 为 (1,2)。
数据范围
- 2≤N≤2×105
- 1≤Q≤2×105
- 1≤Ai≤N
- 1≤k≤2N(N−1)
- 所有输入均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?