/ WHOJ / 题库 /

拼凑春联(文件IO)

拼凑春联(文件IO)

题目描述

春节到了,春联是必不可少的东西。众所周知,一幅对联的“上联”和“下联”是对偶(也叫对仗)的。小明想从已知的佳句中找出两句对偶的,组合出一些新的春联。图书馆有一个“名句文库”, 小明想知道其中的名句一共可以拼凑出多少组不同的春联。为了简化问题,小明只选择七个字的佳句,并把它们的形式化成了字母(按意群将句子分组、断开)。例如“鲲鹏展翅乾坤大”可化为“\(\text{AABBCCD}\)”,也可以化为“\(\text{YYQQZZH}\)”,即字母只起显示结构的作用,与句子内容无关。两个句子按照字母的连续性分段后,如果各成分的字数依次相同,则这两个句子对偶。例如:例如“\(\text{QBLLLDE}\)”和“\(\text{DEZZZBF}\)”,将第一句按照字母的连续性分为 \(5\) 段:\(\text{Q,B,LLL,D,E}\),每段长度分别为 \(1,1,3,1,1\),而第二句经过断句后,各段的长度也分别为 \(1,1,3,1,1\),因此这两个句子对偶。注意, “\(\text{AABCCCD}\)”和“\(\text{EEFBBBE}\)”这类句子也算作对偶:第二个句子中两次出现“\(\text{E}\)”,但“\(\text{E}\)”是断开的,所以断句情况仍为:\(2,1,3,1\)。由于字母只用来突出结构, 所以如果出现两次同样的字母串,则它们表示的春联内容不相同,当然,它们是对偶的。

格式

输入格式

第一行,一个整数 \(N\),\(2≤N≤10^6\);以下 \(N\) 行,每行都有一个由七个大写字母组成的字符串,代表一个佳句。

输出格式

一个整数,表示这些佳句可以拼凑成的对联的组数。

样例1

样例输入1

5
ABCCCDA
LLLMNNO
DEZZZBF
AAABCCD
KKKXPPQ

样例输出1

4

样例解释

样例中,第 \(1\) 和第 \(3\) 句可以构成一组春联;第 \(2\),第 \(4\) 和第 \(5\) 句可以构成三组春联,所以答案是 \(4\)。

来源

地址:芜湖市二十七中电脑班刷题课
作者:汪老师
模拟赛\(T2\)

文件IO

freopen("couplet.in","r",stdin);
freopen("couplet.out","w",stdout);