AT_arc163_a.[ARC163A] Divide String

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的仅包含小写英文字母的字符串 SS。请判断是否可以将 SS 分割为 22 个或更多连续的子字符串,并且这些子字符串按字典序严格递增排列。

更严格地说,判断是否存在一个字符串序列 t=(t1,t2,…,tk)t=(t_1,t_2,\dots,t_k),满足以下所有条件:

  • 序列长度 kk 至少为 22。
  • 每个 tit_i 都非空(1≤i≤k1 \le i \le k)。
  • 按顺序连接 t1,t2,…,tkt_1,t_2,\dots,t_k 恰好等于 SS。
  • 对于任意满足 1≤i<k1 \le i < k 的整数 ii,都有 tit_i 在字典序上严格小于 ti+1t_{i+1}。

给定 TT 组测试数据,请分别输出每组的答案。

什么是字典序?对于字符串 S=S1S2…S∣S∣S = S_1S_2\ldots S_{|S|} 和 T=T1T2…T∣T∣T = T_1T_2\ldots T_{|T|},若满足以下 1. 或 2.,则称 SS 在字典序上小于 TT。其中 ∣S∣,∣T∣|S|, |T| 分别表示 S,TS,T 的长度。

  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 的字符。

输入格式

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

TT
case1\mathrm{case}_1
case2\mathrm{case}_2
⋮\vdots
caseT\mathrm{case}_T

其中,第 ii 个测试用例 casei\mathrm{case}_i 格式如下:

NN SS

输出格式

输出 TT 行。

第 ii 行输出第 ii 个测试用例的答案。如果可以将 SS 按要求分割,输出 Yes,否则输出 No。

输入输出样例

  • 输入#1

    5
    4
    abac
    3
    cac
    2
    ab
    12
    abababababab
    5
    edcba

    输出#1

    Yes
    No
    Yes
    Yes
    No

说明/提示

数据范围

  • 1≤T≤20001 \le T \le 2000
  • 2≤N≤20002 \le N \le 2000
  • SS 是长度为 NN 的小写英文字母字符串
  • 所有测试用例中 NN 的总和不超过 20002000

样例解释 1

第 11 个测试用例,可以将 SS 分割为 a、ba、c。第 22 个测试用例,无论如何分割都无法使子串按字典序严格递增。

由 ChatGPT 4.1 翻译

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

首页