3
计算匹配任何一组掩码的平衡二进制字符串
一个二进制字符串是只包含绘制字符的字符串01。甲平衡二进制串是包含完全一样多一个二进制串0 S作为1秒。 您会得到一个正整数n和任意数量的掩码,每个掩码的长度为2n个字符,并且仅包含从012绘制的字符。如果二进制字符串和掩码的长度相同,并且在掩码没有2的每个位置上的字符都相同,则匹配该字符串。例如掩模011022比赛的二进制串011000,011001,011010,011011。 给定n和掩码作为输入(用换行符分隔),您必须输出与一个或多个掩码匹配的不同平衡二进制字符串的数量。 例子 输入值 3 111222 000112 122020 122210 102120 推理 唯一匹配111222的平衡二进制字符串是111000。 唯一匹配000112的平衡二进制字符串是000111。 匹配122020的平衡二进制字符串为111000(已计数),110010和101010。 匹配122210的平衡二进制串是110010(已经计数),101010(已经计数)和100110。 匹配的平衡二进制字符串102120是101100和100110(已计数)。 所以输出应该是 6 输入值 10 22222222222222222222 推理 有20个选择10个长度为20的平衡二进制字符串。 输出量 184756 优胜者 获胜者将是计算比赛输入最快的人,当然会像对待其他输入一样对待它。(我使用确定的代码来获得明确的获胜者,并避免出现不同的输入将给不同的获胜者的情况。如果您想找到一种找到最快代码的更好方法,请告诉我。) 比赛输入 http://pastebin.com/2Dg7gbfV