题库/Y1268

#Y1268. 寻找好串

    传统题 难度: 提高 标签>一本通AC自动机与fail指针自动机上的动态规划
时间限制2000 ms
内存限制256 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

Y1268 · 寻找好串

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制2000 ms
内存限制256 MiB
通过率—0 / 0 次提交

题目描述

有一个字符串集合SS,定义一个字符串为“好”的,当且仅当它可以被分成非空的两段,其中每一段都是字符串集合SS中某个字符串的前缀。 比如对于字符串集合{“abc”,“bca”},字符串“abb”、“abab”是“好”的(“abb”=“ab”+“b”, “abab”=“ab” +“ab”),而字符串“bc”不是“好”的。 求一共有多少个不同的“好”的字符串。

输入

第一行一个整数nn,表示字符串集合中字符串的个数 接下来每行一个字符串。

输出

一个整数,表示有多少不同的“好”的字符串。

输入样例

2
ab
ac

输出样例

9

提示

【数据规模】 对于20%的数据,1≤n≤2001≤n≤200。 对于50%的数据,1≤n≤20001≤n≤2000。 对于100%的数据,1≤n≤100001≤n≤10000,每个字符串非空且长度不超过3030,均为小写字母组成。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共6个测试点,非原站或官方原始数据。总分100分。