编程题
### 问题描述 小明希望给 $n$ 个游戏角色起名字,小红给了她的建议,小红希望第 $i$ 个角色的名字为长度为 $a_i$ 的字符串 $S_i$。小明在参考小红意见的前提下,设立了一个命名规则: - 最开始,令 $k_i=1(1\leq i \leq n)$; - 从 $1$ 至 $n$ 依次执行如下操作: - 若将 $S_i$ 重复 $k_i$ 次得到的字符串 $t$ 已经被前面的角色用过了,则令 $k_i=k_i+1$,重新执行操作。 - 若将 $S_i$ 重复 $k_i$ 次得到的字符串 $t$ 没有被前面的角色用过了,则 $t$ 被该角色使用。 小明想问问你,对这 $n$ 个角色起完名字后,$\sum_{i=1}^{n}k_i$ 是多少。 ### 输入格式 第一行包含一个整数 $n$,分别表示字符串的个数。 第二行包含 $n$ 个整数,表示数组 $a$。 接下来 $n$ 行,每行表示一个长度为 $a_i$ 的字符串 $S_i$。 **保证字符串 $S_i$ 仅由小写字母组成。** ### 输出格式 输出共 $1$ 行,包含一个整数,表示 $\sum_{i=1}^{n}k_i$。 ### 样例输入 ```text 3 8 8 8 xiaoming xiaoming xiaohong ``` ### 样例输出 ```text 4 ``` ### 评测数据规模 $1\leq n \leq 2\times 10^5$,$1\leq \sum_{i=1}^{n}a_i \leq 2\times 10^5$。
查看答案
赣ICP备20007335号-2