1.CODES
源程序名 CODES.???(PAS,C,CPP)
可执行文件名 CODES.EXE
输入文件名 CODES.IN
输出文件名 CODES.OUT
时间限制 1S
给定n个01编码串S1,S2,…,Sn,你的任务是寻找一个编码串T,使得它至少可以被分解为两种不同的Si的排列。例如:
给定5个01编码串:S1=0110,S2=00,S3=111,S4=001100,S5=110。那么一个符合要求的编码串T是:001100110,它有以下两种分解方法:
00+110+0110 (S2+S5+S1) 或 001100+110 (S4+S5)
而0110110就不符和要求,它只有一种分解方法 0110+110 (S1+S5)。
你要寻找长度最短的符合要求的编码串T。若有多个符合要求的最短编码串T,则输出字典顺序最小的。
输入
输入文件第一行包含一个整数n,n不超过20,表示01编码串总数。接下来的n行每行给出一个长度不超过20的01编码串。
输出
输出文件共有两行,第一行为要求的编码串T的长度,第二行输出编码串T。对所有的测试数据,问题总有解。
样例
CODES.IN
5
0110
00
111
001100
110
CODES.OUT
9
001100110
2.HINT
源程序名 HINT.???(PAS,C,CPP)
可执行文件名 HINT.EXE
输入文件名 HINT.IN
输出文件名 HINT.OUT
时间限制 1S
在当今流行的互联网测验中,选手在答不出一道难题时,测试软件通常会根据标准答案给出三次提示,标准答案由大小写字母以及标点符号和空格构成,其中元音字母为:'aeiouAEIOU'。
测试软件产生提示的算法如下:
第一次提示是将标准答案中的所有字母替换成‘·’
第二次提示来自于第一次提示,将最前面的1/3个字母显示出来,若字母总数不是3的倍数则按四舍五入处理。
第三次提示来自于第二次提示,将余下的所有元音字母显示出来,如果余下的字母中没有元音字母则显示最前面的2/3个字母,若字母总数不是3的倍数则小数部分按四舍五入处理。
写一个程序实现以上产生提示的算法。
输入
输入文件仅一行包含一条标准答案,标准答案最多由50个字符组成。
输出
输出文件共有三行,分别为第一次提示,第二次提示和第三次提示。
样例
HINT.IN
Upomoc! Lpv s nm pkrl sv smglsnk.
HINT.OUT
......! ... . .. .... .. ........
Upomoc! Lp. . .. .... .. ........
Upomoc! Lpv s nm pkrl s. ........
评分
对每个测试点,答对第一个提示给3分,答对第二个提示给3分,答对第三个提示给4分。
procedure WriteS(n:integer);
var count:integer;
begin
count:=n;
repeat
Write('$');
if count
参考资料:不好请不要骂我,我既然回复了多热心啊!pascal求解