33OJ
登录 注册

B. 回文串

    传统题 文件IO:string 1000ms 1024MiB

回文串

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

回文串

题目描述

小 R 有一个长度为 LL 的字符串 S=s1s2…sLS = s_1 s_2 \ldots s_L,其中只包含小写英文字母。

小 R 发现,虽然 SS 可能很长,但它可以分成 nn 个连续的段,其中第 ii(1≤i≤n1 \le i \le n)段由 aia_i 个小写英文字母 cic_i 构成。把这 nn 段依次拼接起来便得到 SS,因此 L=∑i=1naiL = \sum_{i=1}^{n} a_i。相邻两段中的字符可以相同。

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

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

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

输入格式

从文件 string.in 中读入数据。

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

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

输出格式

输出到文件 string.out 中。

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

3
2 a
2 b
1 c
2

样例 1 解释

小 R 的字符串 SS 由 33 段构成:第 11 段由 22 个 a 组成,第 22 段由 22 个 b 组成,第 33 段由 11 个 c 组成,依次拼接得到 S=aabbcS = \mathtt{aabbc}。小 R 可以将最后一个字符 c 和倒数第二个字符 b 都改为 a,得到回文串 aabaa,共修改 22 个位置的字符。

2
2 a
3 a
0

样例 2 解释

S=aaaaaS = \mathtt{aaaaa},已经是回文串,不需要修改。

样例 3

见 string3.in 与 string3.ans。

数据范围

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

  • 1≤n≤2×1051 \le n \le 2 \times 10^5;
  • 对于所有 ii(1≤i≤n1 \le i \le n),1≤ai≤1091 \le a_i \le 10^9,且 cic_i 为小写英文字母。

子任务

本题共 25 个测试点,按测试点计分:

测试点 分值 每个测试点 特殊性质
11 44 44 n≤1n \le 1,max⁡ai≤5\max a_i \le 5
2∼42 \sim 4 1212 n≤2n \le 2,max⁡ai≤5\max a_i \le 5
5∼65 \sim 6 88 n≤10n \le 10,max⁡ai≤1\max a_i \le 1
7∼87 \sim 8 n≤10n \le 10,max⁡ai≤50\max a_i \le 50
99 44 n≤2000n \le 2000,max⁡ai≤1\max a_i \le 1
10∼1210 \sim 12 1212 n≤2000n \le 2000,max⁡ai≤50\max a_i \le 50
13∼1613 \sim 16 1616 n≤2000n \le 2000,max⁡ai≤109\max a_i \le 10^9
17∼1817 \sim 18 88 n≤2×105n \le 2 \times 10^5,max⁡ai≤1\max a_i \le 1
19∼2119 \sim 21 1212 n≤2×105n \le 2 \times 10^5,max⁡ai≤500\max a_i \le 500
22∼2522 \sim 25 1616 n≤2×105n \le 2 \times 10^5,max⁡ai≤109\max a_i \le 10^9

每个测试点单独评分,全部测试点的得分之和即为本题得分。

CSP-J 2026 批量测试

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-11-5 0:00
结束于
2026-11-5 2:00
持续时间
2 小时
主持人
参赛人数
1492