题库/J0119

#J0119. 回文串(分段压缩)

    传统题 难度: 普及− 标签>CSP-JCSP-J 2026双指针推进原则一维数组与下标
时间限制1000 ms
内存限制256 MiB
通过率100%1 / 1 次提交
题目描述 查看题解 开始编程Alt+E

J0119 · 回文串(分段压缩)

退出在线编程模式
普及− 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制256 MiB
通过率100%1 / 1 次提交

题目描述

小 R 有一个长度为 LL 的字符串 S=s1…sLS=s_1\ldots s_L,其中只包含小写英文字母。小 R 发现,虽然 SS 可能很长,但它可以分成 nn 个连续的段,其中第 i (1≤i≤n)i\ (1\le i\le n) 段由 aia_i 个小写英文字母 cic_i 构成。把这 nn 段依次拼接起来便得到 SS,因此 L=∑i=1naiL=\sum_{i=1}^{n}a_i。相邻两段中的字符可以相同。

小 X 喜欢回文串。若一个字符串反转后与原字符串相同,就称它是回文串,例如 aba、abba 都是回文串,而 aabbc 不是。也就是说,字符串 SS 是回文串,当且仅当对于所有 i (1≤i≤L)i\ (1\le i\le L),均有 si=sL+1−is_i=s_{L+1-i}。

小 X 想让小 R 把 SS 改成回文串。小 R 可以将 SS 中任意一个位置的字符修改成任意小写英文字母。他想用尽量少的修改满足小 X 的要求。

你需要帮助小 R 求出,他最少需要修改多少个位置的字符,才能将 SS 改成回文串。

输入格式

从标准输入读入数据。

输入的第一行包含一个正整数 nn。

输入的第 i+1 (1≤i≤n)i+1\ (1\le i\le n) 行包含一个正整数 aia_i 和一个小写英文字母 cic_i。

输出格式

输出到标准输出。

输出一行一个整数,表示小 R 最少需要修改多少个位置的字符,才能将 SS 改成回文串。

3
2 a
2 b
1 c
2
2
2 a
3 a
0
6
1000000000 a
1000000000 a
1000000000 a
1000000000 b
1000000000 b
1000000000 b
3000000000

提示与数据范围

样例 1 解释

小 R 的字符串 SS 由 33 段构成:第 11 段由 22 个 a 组成,第 22 段由 22 个 b 组成,第 33 段由 11 个 c 组成,依次拼接得到 S=aabbcS=\mathtt{aabbc}。

小 R 可以将最后一个字符 c 和倒数第二个字符 b 都改为 a,得到回文串 aabaa,共修改 22 个位置的字符。可以证明,小 R 最少需要修改 22 个位置的字符,才能将 SS 改成回文串。

样例 2 解释

小 R 的字符串 SS 由 22 段构成:第 11 段由 22 个 a 组成,第 22 段由 33 个 a 组成,依次拼接得到 S=aaaaaS=\mathtt{aaaaa},则 SS 已经是回文串,不需要修改。

数据范围

对于所有测试数据,均有:

  • 1≤n≤2×1051\le n\le 2\times10^5;
  • 对于所有 i (1≤i≤n)i\ (1\le i\le n),均有 1≤ai≤1091\le a_i\le10^9,且 cic_i 为小写英文字母。
测试点编号 n≤n\le max⁡i=1nai≤\max_{i=1}^{n}a_i\le
11 55
2∼42\sim4 22
5,65,6 1010 11
7,87,8 5050
99 20002000 11
10∼1210\sim12 5050
13∼1613\sim16 10910^9
17,1817,18 2×1052\times10^5 11
19∼2119\sim21 500500
22∼2522\sim25 10910^9

来源说明

CSP-J 2026 第二轮第2题。题面据洛谷 P17828 民间数据自测整理,来源:CSP-J 2026 自测。本地使用标准输入输出,测试数据为GeekPi自行构造的训练数据,非CCF官方数据;原选手目录中的外部大样例未随本包提供。

题目信息

#2324
100%

1 次通过 · 1 次提交

练习难度 普及−
时间限制
1000ms
内存限制
256MiB
上传者