#P2366. 多重历史
多重历史
题目描述
<h3 style="margin-top:6.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:0cm;margin-bottom:.0001pt;line-height:172%">
<i style="mso-bidi-font-style:
normal"><span style="mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
"Courier New";mso-bidi-font-family:"Courier New"">宇宙具有多重历史,每一个历史都是由微小的硬果决定的。</span></i><span lang="EN-US" style="mso-bidi-font-size:
10.5pt;font-family:"Courier New""> ——</span></i><span style="mso-bidi-font-size:10.5pt;
font-family:宋体;mso-ascii-font-family:"Courier New";mso-bidi-font-family:"Courier New"">霍金《果壳中的宇宙》</span></i><span lang="EN-US" style="mso-bidi-font-size:
10.5pt;font-family:"Courier New";mso-hansi-font-family:宋体"> <o:p></o:p></span></i></h3>
<span lang="EN-US" style="mso-bidi-font-size:10.5pt;
font-family:"Courier New""> </span><span lang="EN-US" style="mso-bidi-font-size:10.5pt;font-family:华文细黑;mso-bidi-font-family:
"Courier New""> TIGER</span><span style="mso-bidi-font-size:10.5pt;font-family:华文细黑;mso-bidi-font-family:"Courier New"">实验室的Dr.Minimum对现代理论物理学中的多重历史理论特别感兴趣。有一次,他给擅长计算的研究员Maximum出了一个难题:“假设在过去的一段连续时间中,每一个时刻只有可能发生一个动作(当然也可能不发生)。一段<b style="mso-bidi-font-weight:
normal">连续时间</b>里发生的某些特定的动作序列称作一个事件。现在我只告诉你,过去一段时间的可能动作列表,以及在那一段时间内发生的事件、事件的内容(也就是事件是有哪些动作连续构成)以及事件发生的先后顺序。要你求出有多少个可能的历史。 <o:p></o:p></span>
<span lang="EN-US" style="mso-bidi-font-size:10.5pt;
font-family:华文细黑;mso-bidi-font-family:"Courier New""> </span><span style="mso-bidi-font-size:10.5pt;font-family:华文细黑;mso-bidi-font-family:"Courier New"">我们把相同的动作用相同的小写字母表示,那么可能的动作列表和<b style="mso-bidi-font-weight:
normal">事件</b>都可以表示为一个字符串。假设有两个动作,a和b,假设过去一段时间内,可能发生的动作列表为’aabb’,发生的事件为’a’,’b’,’a’在’b’之前发生,那么一共就可能有4种不同的历史,分别为aabb、aab<span style="color:
red">b</span></span>、aabb、aabb(红色表示发生的动作)。但是,如果事件为’aab’,’abb’,而且’aab’比’abb’先发生,那么对于上述的可能动作列表,就不存在满足要求的历史(因为事件是相对独立的,不能交错)。 <o:p></o:p></span>
<span lang="EN-US" style="mso-bidi-font-size:10.5pt;
font-family:华文细黑;mso-bidi-font-family:"Courier New""> </span><span style="mso-bidi-font-size:
10.5pt;font-family:华文细黑;mso-bidi-font-family:"Courier New"">如果你是Maximum,如何解决这个问题呢? <o:p></o:p></span>
输入格式
输入文件第一行为一个数N,表示事件的个数。接下来n行每行一个字符串,按时间顺序给出每个事件(所有事件字符串长度和不大于10000,并且不存在两个事件字符串A和B,A是B的后缀)。最后一行为一个字符串,表示过去一段时间里可能的动作列表(长度不大于500000)
输出格式
输出文件包含一个整数,表示可能的历史总数对1000000取余的结果。
2
a
b
aabb
4