#P17828. [CSP-J 2026] 回文串 / string(官方数据)
[CSP-J 2026] 回文串 / string(官方数据)
P17828 [CSP-J 2026] 回文串 / string(官方数据)
- 题号:P17828
- 难度:普及−(2)
- 标签:模拟、字符串、O2优化、2026、CSP-J 入门级、双指针 two-pointer
- 时间限制:1000 ms
- 内存限制:1024 MB
- 样例数:3
- 提交 / 通过:26582 / 10086
- 抓取时间:2026-11-11T12:06:47.845Z
- 正文来源:problem.content(zh-CN)
题目描述
小 R 有一个长度为 的字符串 ,其中只包含小写英文字母。小 R 发现,虽然 可能很长,但它可以分成 个连续的段,其中第 段由 个小写英文字母 构成。把这 段依次拼接起来便得到 ,因此 。相邻两段中的字符可以相同。
小 X 喜欢回文串。若一个字符串反转后与原字符串相同,就称它是回文串,例如 aba、abba 都是回文串,而 aabbc 不是。也就是说,字符串 是回文串,当且仅当对于所有 ,均有 。
小 X 想让小 R 把 改成回文串。小 R 可以将 中任意一个位置的字符修改成任意小写英文字母。他想用尽量少的修改满足小 X 的要求。
你需要帮助小 R 求出,他最少需要修改多少个位置的字符,才能将 改成回文串。
输入格式
从文件 string.in 中读入数据。
输入的第一行包含一个正整数 。
输入的第 行包含一个正整数 和一个小写英文字母 。
输出格式
输出到文件 string.out 中。
输出一行一个整数,表示小 R 最少需要修改多少个位置的字符,才能将 改成回文串。
附件
- string.zip
样例
样例 1 输入
3
2 a
2 b
1 c
样例 1 输出
2
样例 2 输入
2
2 a
3 a
样例 2 输出
0
样例 3 输入
6
1000000000 a
1000000000 a
1000000000 a
1000000000 b
1000000000 b
1000000000 b
样例 3 输出
3000000000
提示
样例 1 解释
小 R 的字符串 由 段构成:第 段由 个 a 组成,第 段由 个 b 组成,第 段由 个 c 组成,依次拼接得到 。
小 R 可以将最后一个字符 c 和倒数第二个字符 b 都改为 a,得到回文串 aabaa,共修改 个位置的字符。可以证明,小 R 最少需要修改 个位置的字符,才能将 改成回文串。
样例 2 解释
小 R 的字符串 由 段构成:第 段由 个 a 组成,第 段由 个 a 组成,依次拼接得到 ,则 已经是回文串,不需要修改。
样例 4
见题目目录下的 string/4.in 与 string/4.ans。
该样例满足测试点 的约束条件。
样例 5
见题目目录下的 string/5.in 与 string/5.ans。
该样例满足测试点 的约束条件。
样例 6
见题目目录下的 string/6.in 与 string/6.ans。
该样例满足测试点 的约束条件。
数据范围
对于所有测试数据,均有:
- ;
- 对于所有 ,均有 ,且 为小写英文字母。
::cute-table{tuack} | 测试点编号 | | | | :-: | :-: | :-: | | | | | | | | ^ | | | | | | | ^ | | | | | | | | ^ | | | | ^| | | | | | | | ^ | | | | ^ | |
由 fetch_luogu_statements.mjs v1.0.0 自动抓取生成;原始数据见 json/P17828.json。