AT_abc272_f.[ABC272F] Two Strings

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定两个长度为 NN 的仅包含小写英文字母的字符串 SS 和 TT。

对于字符串 XX 和整数 ii,定义 f(X,i)f(X,i) 为对 XX 执行以下操作 ii 次后得到的字符串:

  • 删除 XX 的首字母,并将该字母插入到 XX 的末尾。

请你计算满足 0≤i,j≤N−10 \leq i, j \leq N-1 的非负整数对 (i,j)(i, j) 中,有多少对满足 f(S,i)f(S, i) 的字典序小于等于 f(T,j)f(T, j)。

什么是字典序?字典序简单来说就是“单词在字典中出现的顺序”。更严格地说,判断由小写英文字母组成的不同字符串 SS、TT 的大小关系的算法如下:

记 SS 的第 ii 个字符为 SiS_i。若 SS 的字典序小于 TT,记为 S<TS < T,大于则记为 S>TS > T。

  1. 设 LL 为 SS 和 TT 中较短的字符串的长度。对于 i=1,2,…,Li=1,2,\dots,L,比较 SiS_i 和 TiT_i 是否相同。
  2. 如果存在 Si≠TiS_i \neq T_i,取最小的此类 ii,记为 jj。若 SjS_j 在字母表中小于 TjT_j,则 S<TS < T,否则 S>TS > T,算法结束。
  3. 如果所有 Si=TiS_i = T_i,则比较 SS 和 TT 的长度,短的字典序更小,算法结束。

输入格式

输入从标准输入读取,格式如下:

NN SS TT

输出格式

输出答案。

输入输出样例

  • 输入#1

    3
    adb
    cab

    输出#1

    4
  • 输入#2

    10
    wsiuhwijsl
    pwqoketvun

    输出#2

    56

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • S,TS,T 均为长度为 NN 的小写英文字母字符串
  • NN 为整数

样例解释 1

满足条件的 (i,j)(i, j) 共有 44 组,分别为 (0,0),(0,2),(2,0),(2,2)(0,0),(0,2),(2,0),(2,2)。例如,(i,j)=(1,2)(i,j)=(1,2) 时,f(S,1)=dbaf(S,1)=\texttt{dba},f(T,2)=bcaf(T,2)=\texttt{bca},不满足条件。

由 ChatGPT 4.1 翻译

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

首页