AT_abc280_h.[ABC280Ex] Substring Sort

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定 NN 个字符串 S1,S2,…,SNS_1,S_2,\ldots,S_N。令 M=∑i=1N∣Si∣(∣Si∣+1)2M = \displaystyle\sum_{i=1}^N \frac{|S_i|(|S_i|+1)}{2}。

对于字符串 SS 和整数 L,RL, R,S[L,R]S[L, R] 表示 SS 的第 LL 个字符到第 RR 个字符组成的子串。

长度为 MM 的三元组序列 ((K1,L1,R1),(K2,L2,R2),…,(KM,LM,RM))((K_1, L_1, R_1), (K_2, L_2, R_2), \ldots, (K_M, L_M, R_M)) 满足以下条件:

  • MM 个元素互不相同。
  • 对于所有 1≤i≤M1 \leq i \leq M,有 1≤Ki≤N1 \leq K_i \leq N 且 1≤Li≤Ri≤∣SKi∣1 \leq L_i \leq R_i \leq |S_{K_i}|。
  • 对于所有 1≤i≤j≤M1 \leq i \leq j \leq M,有 SKi[Li,Ri]≤SKj[Lj,Rj]S_{K_i}[L_i, R_i] \leq S_{K_j}[L_j, R_j](按字典序比较)。

给定 QQ 个整数 x1,x2,…,xQx_1, x_2, \ldots, x_Q,其中 1≤x1<x2<⋯<xQ≤M1 \leq x_1 < x_2 < \cdots < x_Q \leq M。对于每个 1≤i≤Q1 \leq i \leq Q,请各自求出一个可能的 (Kxi,Lxi,Rxi)(K_{x_i}, L_{x_i}, R_{x_i})。可以证明,满足条件的三元组序列至少存在一个。如果存在多个满足条件的三元组,输出任意一个即可。不同 xix_i 之间,不要求三元组序列相同。

字典序的定义如下:对于两个字符串 S,TS, T,当且仅当满足以下任一条件时,S≤TS \leq T(按字典序):

  • ∣S∣≤∣T∣|S| \leq |T| 且 S=T[1,∣S∣]S = T[1, |S|]。
  • 存在 1≤k≤min⁡(∣S∣,∣T∣)1 \leq k \leq \min(|S|, |T|),对于所有 1≤i≤k−11 \leq i \leq k-1,SS 和 TT 的第 ii 个字符相等,且 SS 的第 kk 个字符在字母表中严格小于 TT 的第 kk 个字符。

输入格式

输入按以下格式从标准输入给出。

NN
S1S_1
S2S_2
⋮\vdots
SNS_N
QQ
x1x_1 x2x_2 …\ldots xQx_Q

输出格式

输出 QQ 行。第 ii 行输出一个满足条件的 (Kxi,Lxi,Rxi)(K_{x_i}, L_{x_i}, R_{x_i}),用空格分隔。若存在多个满足条件的三元组,输出任意一个即可。

输入输出样例

  • 输入#1

    2
    abab
    cab
    2
    5 14

    输出#1

    1 3 4
    2 1 1
  • 输入#2

    3
    a
    a
    ba
    2
    1 2

    输出#2

    1 1 1
    1 1 1
  • 输入#3

    10
    gxgpuamkx
    szhkbpphykin
    ezplvfja
    mopodotkrj
    rimlvumuar
    nexcfyce
    eurgvjyos
    dhvuyfvt
    nrdyluacvra
    ggwnpnzij
    6
    74 268 310 380 455 489

    输出#3

    3 1 2
    4 4 5
    4 3 7
    9 6 6
    6 6 6
    2 2 12

说明/提示

数据范围

  • 1≤N≤1051 \leq N \leq 10^5
  • 1≤∣Si∣≤1051 \leq |S_i| \leq 10^5
  • ∑i=1N∣Si∣≤105\displaystyle\sum_{i=1}^N |S_i| \leq 10^5
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • 1≤x1<x2<⋯<xQ≤∑i=1N∣Si∣(∣Si∣+1)21 \leq x_1 < x_2 < \cdots < x_Q \leq \displaystyle\sum_{i=1}^N \frac{|S_i|(|S_i|+1)}{2}
  • N,Q,x1,x2,…,xQN, Q, x_1, x_2, \ldots, x_Q 均为整数
  • SiS_i 仅由小写英文字母组成

样例解释 1

M=16M=16,满足条件的三元组序列可以为:(1,1,1),(1,3,3),(2,2,2),(1,1,2),(1,3,4),(2,2,3),(1,1,3),(1,1,4),(1,2,2),(1,4,4),(2,3,3),(1,2,3),(1,2,4),(2,1,1),(2,1,2),(2,1,3)(1,1,1), (1,3,3), (2,2,2), (1,1,2), (1,3,4), (2,2,3), (1,1,3), (1,1,4), (1,2,2), (1,4,4), (2,3,3), (1,2,3), (1,2,4), (2,1,1), (2,1,2), (2,1,3)。按此顺序排列时,对应的 SKi[Li,Ri]S_{K_i}[L_i, R_i] 为(a, a, a, ab, ab, ab, aba, abab, b, b, b, ba, bab, c, ca, cab)。注意,第 55 个元素 (1,3,4)(1,3,4) 与第 44 个或第 66 个元素互换也满足条件,因此 (Kx1,Lx1,Rx1)=(1,1,2),(2,2,3)(K_{x_1}, L_{x_1}, R_{x_1})=(1,1,2), (2,2,3) 也是正确答案。

样例解释 2

M=5M=5,满足条件的三元组序列可以为:(1,1,1),(2,1,1),(3,2,2),(3,1,1),(3,1,2)(1,1,1), (2,1,1), (3,2,2), (3,1,1), (3,1,2) 或 (2,1,1),(3,2,2),(1,1,1),(3,1,1),(3,1,2)(2,1,1), (3,2,2), (1,1,1), (3,1,1), (3,1,2)。对于输出的 (Kxi,Lxi,Rxi)(K_{x_i}, L_{x_i}, R_{x_i}),不要求所有 xix_i 对应的三元组来自同一个满足条件的序列。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页