#P2133. Cow Imposters
Cow Imposters
描述
FJ不再使用野蛮的烙印习俗来标记他所拥有的奶牛。取而代之的是,他为每头奶牛创建一个由()位组成的二进制代码,并将其压印在一个固定在每头奶牛耳朵上的金属条上。
奶牛们收留了一头流浪牛,并希望为它制作一个身份识别条。FJ并不知道,奶牛们制作了一台机器,通过异或操作,利用现有的两个身份识别条来制作一个新的身份识别条(这台机器不会消耗现有的身份识别条,并且同一个身份识别条可以同时用作两个输入)。
奶牛们希望为这头流浪牛制作一个特定的身份识别条,或者至少制作出与期望的身份识别条尽可能接近的识别条,也就是说,目标身份识别条和最佳的新身份识别条之间不同的位数要尽可能少。
给定一组由()个现有的身份识别条、目标身份识别条以及大量用于保存中间结果的空白身份识别条,计算出能够由现有的身份识别条制作出的最接近目标的身份识别条。
如果有多个同样接近目标的身份识别条,选择能够通过最少步骤制作出来的那个。如果仍然存在相同步骤数的情况,选择 “最小” 的身份识别条(也就是说,如果你对所有的身份识别条进行排序,选择排在最前面的那个)。
输入
- 第一行:两个用空格分隔的整数:和。
- 第二行:目标身份识别字符串,用由个0和1组成的字符串表示(无空格)。
- 第3行到行:每行包含一个现有的身份识别字符串,用由个0和1组成的字符串表示(无空格)。
输出
- 第一行:一个整数,表示制作出最佳身份识别条所需的最小步骤数。
- 第二行:一个字符串,表示能够由个现有身份识别条制作出的最佳身份识别条。
输入数据 1
5 3
11100
10000
01000
00100
输出数据 1
2
11100
来源
USACO 2003 年 2 月绿组