#P51567. 「2017 山东一轮集训 Day5」字符串

「2017 山东一轮集训 Day5」字符串

题目描述

给定 n n 个字符集为小写字母的字符串 si s_i ,一个串 t t 是可接受的,当且仅当 t t 可以表示成 p1+p2++pn p_1 + p_2 + \cdots + p_n ,其中 pi p_i si s_i 的一个子串(可以为空),+ + 表示字符串的拼接。问有多少种本质不同的字符串 t t 是可接受的。答案对 109+7 10 ^ 9 + 7 取模。

输入格式

第一行一个整数 n n
接下来 n n 行,每行一个字符串 si s_i

输出格式

输出一行一个整数,表示可接受的字符串的数目对 109+7 10 ^ 9 + 7 取模后的结果。

样例

2
bbbaa
bb
30

数据范围与提示

第 1、2 个测试点,满足 n5,si7 n \leq 5, |s_i| \leq 7
第 3 个测试点,满足 n=1 n = 1
第 4 个测试点,满足 n=2 n = 2
第 5、6 个测试点,满足 i=1nsi1000 \sum\limits_{i = 1} ^ n |s_i| \leq 1000
第 7、8、9、10 个测试点,满足 n106;i=1nsi106 n \leq 10 ^ 6; \sum\limits_{i = 1} ^ n |s_i| \leq 10 ^ 6