二进制数可看作由0和1组成的非空串二进制方程是个形如X1X2..Xl=Y1Y2..Yr的等式,其中 Xi 和Yj 是二进制数字0和1 或者用小写英文字母表示的二进制变量每个变量都代表某个固定长度的二进制數,其长度称作该变量的长度解二进制方程就是赋给每个变量一个适当长度的二进制数(这个二进制数的长度应与变量的长度相等),當所有变量都用相应的二进制数替换后等式两边的二进制数相等。 二进制方程问题要求对于给定的二进制方程计算其解的个数。 例如:设a、b、c、d、e 是长度分别为4、2、4、4、2的变量(a的长度是4b的长度是2……)。则二进制方程1bad1 = acbe有16个不同的解
输入数据由多组数据组成,每组數据格式如下: 将计算出的每个二进制方程的解的个数的以2为底的对数依次输出。例如一个二进制方程的解的个数为x时,輸出log x当方程无解时输出-1。 注意如果两个序列不等,则要在短的序列前面补0.我们可以转换为将两个序列倒序后在后面补0这样比较方便些。 (-->)表示映射好了···这儿就可以用并查集来处理映射。直到没有新的映射关系为止中间记得缩短路径哦~ 最后看看总共有几个无关集匼输出就是答案了~ 嘿嘿~ 简单吧~ 8过代码好长啊 |