CF2178B.Impost or Sus

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Impost or Sus

题目描述

一个由小写拉丁字母组成的字符串 ww 被称为可疑字符串,当且仅当同时满足以下所有条件:

  • 字母 s\mathtt{s} 至少出现两次,并且
  • 对于每一个 u\mathtt{u} 的出现,它左、右两侧最近的两个 s\mathtt{s} 离这个 u\mathtt{u} 的距离必须相同。

在你完成字符串相关任务后,你的朋友 Aka 赠送给你一个只包含字母 s\mathtt{s}u\mathtt{u} 的字符串 rr。你可以对 rr 执行以下操作:

  • 选择一个下标 ii1ir1\le i\le |r|),并将 rir_i 赋值为 s\mathtt{s}

请你求出把 rr 变为可疑字符串所需操作的最小次数。在给定的约束条件下,总是可以将 rr 变为可疑字符串。

输入格式

每个测试点包含若干组测试数据。第一行为测试组数 tt1t1041 \le t \le 10^4)。接下来依次给出每组测试数据。

每组测试数据包含一行字符串 rr3r21053\le |r|\le 2\cdot 10^5)。保证 ri=sr_i=\mathtt{s}u\mathtt{u}

保证所有测试数据的 r|r| 之和不超过 21052\cdot 10 ^ 5

输出格式

对于每组测试数据,输出一行一个整数,表示最少需要多少次操作将 rr 变为可疑字符串。

说明/提示

在第一个测试点中,字符串 sus\mathtt{sus} 已经是可疑字符串,因为 s\mathtt{s} 在串中出现了两次,并且唯一的 u\mathtt{u} 左右最近的 s\mathtt{s} 距离都为 11:$\color{red}{\mathtt{s}}\underline{\mathtt{u}}\color{red}{\mathtt{s}}$。

在第二个测试点中,最优操作方案是将第 113344 位改为 s\mathtt{s},此时字符串变为 suss\mathtt{suss}。此时 suss\mathtt{suss} 是可疑字符串,因为 s\mathtt{s} 出现了 33 次,并且唯一的 u\mathtt{u} 左右最近的 s\mathtt{s} 距离都为 11:$\color{red}{\mathtt{s}}\underline{\mathtt{u}}\color{red}{\mathtt{s}}\mathtt{s}$。

在第三个测试点中,由于字符串 sssss\mathtt{sssss} 没有 u\mathtt{u},条件对 u\mathtt{u} 的要求自然成立。所以原串已经是可疑字符串。

在第六个测试点中,最初的字符串 usssssss\mathtt{usssssss} 并不是可疑字符串,因为唯一的 u\mathtt{u} 左右最近的两个 s\mathtt{s} 分别相距一格和两格:$\underline{\mathtt{u}}\color{red}{\mathtt{ss}}\mathtt{sssss}$。

由 ChatGPT 5 翻译

样例

9
sus
uuuu
sssss
uusuuu
suuuuuu
usssssss
sssuuusss
susuusuuus
uuuuuuuuuuu
0
3
0
3
3
1
1
2
6

在线编程 IDE

建议全屏模式获得最佳体验