AT_arc175_f.[ARC175F] Append Same Characters

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定 NN 个仅由小写英文字母组成的字符串 S1,…,SNS_1,\dots,S_N。你可以以任意顺序、任意次数(包括 00 次)进行以下两种操作:

  • 选择一个小写英文字母 cc,将 cc 添加到所有 1≤i≤N1 \leq i \leq N 的 SiS_i 的末尾。
  • 选择一个满足 1≤i≤N−11 \leq i \leq N-1 的整数 ii,交换 SiS_i 和 Si+1S_{i+1}。

请你求出,为了使所有操作结束后,对于每个 1≤i≤N−11 \leq i \leq N-1 都有 Si≤Si+1S_i \leq S_{i+1}(按字典序),所需操作总次数的最小值。

字典序的定义如下:设字符串 S=S1S2…S∣S∣S = S_1S_2\ldots S_{|S|},T=T1T2…T∣T∣T = T_1T_2\ldots T_{|T|},其中 ∣S∣,∣T∣|S|, |T| 分别表示 S,TS, T 的长度。SS 在字典序上小于 TT 当且仅当满足以下两条之一:

  1. ∣S∣<∣T∣|S| < |T| 且 S1S2…S∣S∣=T1T2…T∣S∣S_1S_2\ldots S_{|S|} = T_1T_2\ldots T_{|S|}。
  2. 存在整数 1≤i≤min⁡{∣S∣,∣T∣}1 \leq i \leq \min\lbrace |S|, |T| \rbrace,使得以下两点同时成立:
    • S1S2…Si−1=T1T2…Ti−1S_1S_2\ldots S_{i-1} = T_1T_2\ldots T_{i-1}。
    • SiS_i 是按字母顺序小于 TiT_i 的字符。

输入格式

输入按以下格式从标准输入读入:

NN
S1S_1
S2S_2
⋮\vdots
SNS_N

输出格式

输出一个整数,表示所需操作总次数的最小值。

输入输出样例

  • 输入#1

    5
    ab
    rac
    a
    dab
    ra

    输出#1

    3
  • 输入#2

    3
    kitekuma
    nok
    zkou

    输出#2

    0
  • 输入#3

    31
    arc
    arrc
    rc
    rac
    a
    rc
    aara
    ra
    caac
    cr
    carr
    rrra
    ac
    r
    ccr
    a
    c
    aa
    acc
    rar
    r
    c
    r
    a
    r
    rc
    a
    r
    rc
    cr
    c

    输出#3

    175

说明/提示

限制条件

  • 输入的所有数值均为整数。
  • 2≤N≤3×1052 \leq N \leq 3 \times 10^5
  • SiS_i 由小写英文字母组成。
  • 1≤∣Si∣1 \leq |S_i|
  • ∣S1∣+∣S2∣+⋯+∣SN∣≤3×105|S_1| + |S_2| + \dots + |S_N| \leq 3 \times 10^5

样例解释 1

下面给出一种操作方案:

  • 交换 S2S_2 和 S3S_3。此时 (S1,…,S5)=((S_1,\ldots,S_5) = (ab, a, rac, dab, ra))。
  • 给每个字符串末尾添加 z。此时 (S1,…,S5)=((S_1,\ldots,S_5) = (abz, az, racz, dabz, raz))。
  • 交换 S3S_3 和 S4S_4。此时 (S1,…,S5)=((S_1,\ldots,S_5) = (abz, az, dabz, racz, raz))。

此时对于所有 i=1,…,N−1i = 1,\ldots,N-1,都有 Si≤Si+1S_i \leq S_{i+1}。无法通过少于 33 次操作达到目标,因此输出 33。

样例解释 2

在进行任何操作前,所有 i=1,…,N−1i = 1,\ldots,N-1 都满足 Si≤Si+1S_i \leq S_{i+1}。

样例解释 3

请注意,可能存在 i≠ji \neq j 使得 Si=SjS_i = S_j。

由 ChatGPT 4.1 翻译

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

首页