题意:

一个代码等式就是形如x1x2...xi=y1y2...yj,这里xi和yj是二进制的数字(0或1)或者是一个变量(如英语中的小写字母)。每一个变量都是一个有固定长度的二进制代码。例如:
a,b,c,d,e是变且它们的长度分别是4,2,4,4,2。考虑等式:1bad1=acbe,这个等式共有16组解。现要求任给一个等式,计算一共有多少组解。(变量最多26个,长度和不超过10000)

思路:

利用并查集维护每个变量相同的位的集合,再根据已知的数字判断是否无解.
我们可以利用两个指针从左向右同时访问两个字符串.
第一次访问:将两个指针对应的并查集合并.遇到已知数字两个指针同时直接跳过这一位.
第二次访问:考虑已知数字对解的影响.遇到已知数字修改或访问并查集根节点,判断是否有两个不同已知数字在这个并查集中.
然后利用高精度乘法(+快速幂)求出答案.


(本代码已在本地cy下发数据评测下AC)