P2456 [SDOI2006] 二进制方程

题目描述

一个形如: $$ \overline{X_1X_2\dots X_n}= \overline{Y_1Y_2\dots Y_m} $$ 的等式称为二进制方程。 在二进制方程的两边:$X_i$ 和 $Y_j$($1\le i\le n$ 且 $1\le j \le m$)是二进制数字 $01$ 或者一个变量(小写字母)。每个变量都是一个有固定长度的二进制代码,他可以在等式中取代变量的位置,称这个长度为变量的长度。为了解一个二进制方程,需要给其中的变量赋予适当的二进制代码,使得我们用他们替代等式中的相应的变量后(等式的两边都变成二进制代码),这个等式成立。 编程任务: 对于每一个给出的方程,计算一共有多少组解。

输入格式

输入共四行。 第一行:$k$,代表变量的个数,规定使用小写英文字母中的前 $k$ 个字母作为变量(如 $k=5$,则变量有 $a,b,c,d,e$)。 第二行:$k$ 个正整数,中间用一个空格隔开,依次代表 $k$ 个变量的长度。 第三行:等式左边的表达式。 第四行:等式右边的表达式。

输出格式

一个数,代表等式中出现的变量共有多少组解。

说明/提示

#### 样例一解释 一共有 $4$ 组解,如下所示: 1. $a=1001$,$b=00$。 2. $a=1011$,$b=01$。 3. $a=1101$,$b=10$。 4. $a=1111$,$b=11$。 #### 样例二解释 $k=5$,所以变量有:$a,b,c,d,e$,长度分别为:$4\space 2\space 4\space 4\space2$。等式是:$\overline{1bad1}=\overline{acbe}$。 所以输出 $16$,即变量 $a,b,c,d,e$ 共有 $16$ 组解。 #### 数据范围 $k\le 26$,因为变量最多有 $26$ 个($26$ 个英文小写字母)。 等式的每一端的数字和变量的长度之和不超过 $10000$。