网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
[HAOI2005]寻找编码串
成绩 | 0 | 开启时间 | 2013年01月16日 星期三 11:05 |
折扣 | 0.8 | 折扣时间 | 2013年01月16日 星期三 11:05 |
允许迟交 | 是 | 关闭时间 | 2013年01月16日 星期三 11:05 |
输入文件 | codestring.in | 输出文件 | codestring.out |
【问题描述】
给定N个由0和1组成的编码S1,S2,…,Sn,寻找一个长度最短的编码串T,使得T至少可以分解出两种不同的Si的排列,在排列中有的编码可以不出现。
例如:S1=0110,S2=00,S3=111,S4=001100,S5=110,编码串T=001100110
T有两种不同的分解T=S2+S5+S1,T=S4+S5
【输入文件】
codestring.in
第1行:N(编码的个数N<=20)
第2--N+1行:Si(第i个编码,Si的长度<=50)
注意,该例子只是对库函数的使用说明,并没有算法上的意义。
【输出文件】
codestring.out
第1行:M(编码串的长度)
第2行:T(长度最短的编码串)
【约束条件】
若有多个长度相同且最短的编码串。则输出字典序最小的编码串。例如:若有两种最短的编码串:10110010100利10001110010,则输出10001110010。
【输入输出样例】
codestring.in
5
0110
00
111
001100
1100
codestring.out
6
001100