最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 寻找好串

C++ 少儿编程 1085浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

有一个字符串集合$S$,定义一个字符串为“好”的,当且仅当它可以被分成非空的两段,其中每一段都是字符串集合$S$中某个字符串的前缀。

比如对于字符串集合{“abc”,“bca”},字符串“abb”、“abab”是“好”的(“abb”=“ab”+“b”, “abab”=“ab” +“ab”),而字符串“bc”不是“好”的。

求一共有多少个不同的“好”的字符串。

【输入】

第一行一个整数$n$,表示字符串集合中字符串的个数

接下来每行一个字符串。

【输出】

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

【输入样例】

2
ab
ac

【输出样例】

9

【提示】

【数据规模】

对于20%的数据,$1≤n≤200$。

对于50%的数据,$1≤n≤2000$。

对于100%的数据,$1≤n≤10000$,每个字符串非空且长度不超过$30$,均为小写字母组成。

您必须 登录 才能发表评论!