3817 - 回文串
描述

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

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

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

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

输入

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

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

输出

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

样例

输入

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 解释:S = \texttt{aabbc}。可以把最后一个 \texttt{c} 和倒数第二个 \texttt{b} 都改成 \texttt{a},得到回文串 \texttt{aabaa},共改 2 个位置;可以证明不能只改 1 个,所以答案是 2。

样例 2 解释:S = \texttt{aaaaa} 已经是回文串,答案是 0。

样例 3 解释:S 是 10^9 个 \texttt{a} 接 10^9 个 \texttt{b} 再接 10^9 个 \texttt{b}。左边 3 \times 10^9 个位置全是 \texttt{a},右边 3 \times 10^9 个位置全是 \texttt{b},配对的 3 \times 10^9 对字符全部不同,每对至少改一个,答案 3000000000。

数据范围

• 1 \le n \le 2 \times 10^5;

• 对每个 i,1 \le a_i \le 10^9,c_i 为小写英文字母。

注意 L = \sum a_i 可以到 2 \times 10^{14},答案也要用 \texttt{long long} 存。

测试点构成(共 25 个测试点)

测试点规模
1 ~ 4n \le 2,L \le 7,手算即可
5 ~ 8n \le 10,L \le 300
9 ~ 12n \le 2000,\max a_i \le 50
13 ~ 16n \le 2000,a_i 可达 10^9(L 达到 10^{12})
17 ~ 21n 达到 2 \times 10^5,但 L \le 2 \times 10^8
22 ~ 25n 与 L 同时取到最大(2 \times 10^{14})

提示

只看「字符不同」的那些对称位置对:若 s_i = s_{L+1-i},这一对不用改;若不相等,至少改一个,而且改一个就够了(把其中一个改成另一个)。所以答案 = 满足 s_i \ne s_{L+1-i} 的 i \le \lfloor L/2 \rfloor 的个数,不同位置对之间互不影响。

但 L 太大,不能把串真的造出来。注意到「从左边数第 i 个字符」和「从右边数第 i 个字符」都只能按整段变化:用两个指针分别从段首、段尾走,每次取左右剩余长度的较小值 t,这一段范围内左边全是 c_i、右边全是 c_j,于是这一整批 t 对要么全要改要么全不改,累加后把指针推进。总复杂度 O(n)。

来源
2026 CCF CSP-J/S 第二轮 入门组
标签
题目参数
时间限制 1 秒
内存限制 1024 MB
提交次数 2
通过次数 2