P1053编辑字符串edit

时间限制 1000 ms内存限制 512 MiB通过率 —
显示算法标签字符串 · 前缀和 · 贪心

【题目描述】

小 X 负责校对一圈首尾相接的电子字幕。字幕中共有 nn 个字符位置,依次编号为 1,2,,n1,2,\ldots,n,其中位置 11 与位置 nn 也相邻。

编辑器中当前保存的字符串为 ss,校对完成后的目标字符串为 tt。编辑器只有一个光标,初始位于位置 11。每次操作,小 X 可以选择下列两种方式之一:

  • 将光标顺时针或逆时针移动到相邻位置。
  • 将光标所在位置的字符修改为任意一个小写英文字母。

每次移动或修改都算作一次操作。完成编辑字符串的工作后,光标可以停留在任意位置。

请你帮助小 X 求出,将字符串 ss 修改为字符串 tt 所需的最少操作次数。

【输入格式】

从文件 edit.in\textbf{\textit{edit.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,Tc,T,分别表示测试点编号与测试数据的组数。c=0c=0 表示该测试点为样例。

对于每组测试数据:

第一行包含一个正整数 nn,表示字符串的长度。

第二行包含一个长度为 nn 的字符串 ss,表示编辑器中当前保存的字符串。

第三行包含一个长度为 nn 的字符串 tt,表示校对完成后的目标字符串。

字符串 s,ts,t 均只包含小写英文字母。

【输出格式】

输出到文件 edit.out\textbf{\textit{edit.out}} 中。

对于每组测试数据,输出一行一个非负整数,表示将字符串 ss 修改为字符串 tt 所需的最少操作次数。

【样例 1 输入】

0 16abcdefabxdxf

【样例 1 输出】

6

【说明/提示】

【样例 1 解释】

只有位置 3,53,5 的字符需要修改。光标可以依次到达这两个位置并完成修改,共执行 44 次移动与 22 次修改,因此答案为 66

【样例 2】

见选手目录下的 edit/edit2.in\textbf{\textit{edit/edit2.in}}edit/edit2.ans\textbf{\textit{edit/edit2.ans}}

该组样例符合测试点 141\sim4 的数据范围。

【样例 3】

见选手目录下的 edit/edit3.in\textbf{\textit{edit/edit3.in}}edit/edit3.ans\textbf{\textit{edit/edit3.ans}}

该组样例符合测试点 585\sim8 的数据范围。

【样例 4】

见选手目录下的 edit/edit4.in\textbf{\textit{edit/edit4.in}}edit/edit4.ans\textbf{\textit{edit/edit4.ans}}

该组样例符合测试点 9129\sim12 的数据范围。

【样例 5】

见选手目录下的 edit/edit5.in\textbf{\textit{edit/edit5.in}}edit/edit5.ans\textbf{\textit{edit/edit5.ans}}

该组样例符合测试点 131613\sim16 的数据范围。

【样例 6】

见选手目录下的 edit/edit6.in\textbf{\textit{edit/edit6.in}}edit/edit6.ans\textbf{\textit{edit/edit6.ans}}

该组样例符合测试点 172017\sim20 的数据范围。

\newpage

【数据范围】

对于 100%100\% 的数据,保证 1n1051\leq n\leq10^5,单个测试点内所有测试数据满足 n105\sum n\leq10^5

测试点编号nn特殊性质
141\sim4n10n\leq10
585\sim8n105n\leq10^5A
9129\sim12n105n\leq10^5B
131613\sim16n103n\leq10^3
172017\sim20n105n\leq10^5

特殊性质 A:对于每组测试数据,满足 sitis_i\neq t_i 的位置不超过两个。

特殊性质 B:对于每组测试数据,满足 sitis_i\neq t_i 的位置在环上构成一个连续区间。

对于所有测试数据,保证:

  • 0c200\leq c\leq201T101\leq T\leq10
  • 字符串 s,ts,t 的长度均为 nn,且只包含小写英文字母。

【题解】

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

查看题解