P1061挑战不被发现apt

时间限制 1000 ms内存限制 512 MiB通过率 —
显示算法标签字符串 · 最大子段和 · Kadane

【题目背景】

Gioush 大队营地里开始循环播放《APT.》。为了挑战唱《APT.》不被发现,你需要尽可能减少播放记录中连续子串 APT 的出现次数。

【题目描述】

给定一个只包含大写英文字母的字符串 SS。如果存在位置 ii 使 SiSi+1Si+2=APTS_iS_{i+1}S_{i+2}=\texttt{APT},则记作一次 APT 记录,不同起点分别计数。

你至多可以选择一个非空区间 [l,r][l,r] 并将 SlSl+1SrS_lS_{l+1}\cdots S_r 反转,也可以不进行操作。求操作结束后 APT 记录数量的最小值。

【输入格式】

第一行包含两个非负整数 c,Tc,T,分别表示测试点编号和测试数据组数。样例中 c=0c=0,正式测试数据中 1c201\le c\le20

接下来 TT 行,每行包含一个只由大写英文字母组成的字符串 SS

【输出格式】

输出 TT 行。第 ii 行包含一个整数,表示第 ii 个字符串经过至多一次操作后 APT 记录数量的最小值。

【样例输入】

0 1BEDAPT

【样例输出】

0

【说明】

将最后三个字符 APT 反转为 TPA 后,字符串中不再含有 APT

对于 100%100\% 的数据,1T201\le T\le201Si1061\le |S_i|\le10^6,且 Si106\sum |S_i|\le10^6

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解