单词接龙-洛谷 1019
来源:互联网 发布:excel表格数据没有了 编辑:程序博客网 时间:2024/06/05 17:51
题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。输入输出格式输入格式:输入的第一行为一个单独的整数n (n<=20)表示单词数,以下n 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定存在.输出格式:只需输出以此字母开头的最长的“龙”的长度输入输出样例输入样例#1:5attouchcheatchoosetacta输出样例#1:23 (连成的“龙”为atoucheatactactouchoose)题解:这题先用暴力枚举法,然后如果单词能连接的话就深度搜索。var a:array[0..20] of string; b,c:array[0..20] of shortint; l,n:shortint; s:string; ss,max:integer;procedure link(head:string);var k,j,i:byte; s1,s2:string;begin for i:=1 to n do if c[i]<2 then begin s:=a[i]; if length(head)>=b[i] then k:=b[i]-1 else k:=length(head); s1:=''; s2:=''; for j:=1 to k do begin s1:=head[length(head)+1-j]+s1; s2:=s2+s[j]; if s1=s2 then begin ss:=ss+b[i]-j; if ss>max then max:=ss; inc(c[i]); link(a[i]); dec(c[i]); ss:=ss+j-b[i]; end; end; end;end;begin readln(n);max:=0; for l:=1 to n do begin readln(s); a[l]:=s; b[l]:=length(s); c[l]:=0; end; readln(s); ss:=length(s); link(s); writeln(max);end.
0 0
- 洛谷1019 单词接龙
- 单词接龙-洛谷 1019
- 洛谷 P1019 单词接龙
- 洛谷P1019 单词接龙
- 洛谷 P1019 单词接龙
- 洛谷 P1019 单词接龙
- 洛谷 P1019 单词接龙
- 洛谷 P1019 单词接龙
- 洛谷 P1019 单词接龙
- 洛谷 P1019 单词接龙
- 洛谷 P1019 单词接龙
- 洛谷 P1019 单词接龙
- |洛谷|DFS|P1019 单词接龙
- 单词接龙
- 单词接龙
- 单词接龙
- 单词接龙
- 单词接龙
- SSH架构操作多数据库
- 致CSDN的感谢信
- TYPESDK手游聚合SDK客户端设计思路与架构之三:iOS平台统一化接口结构及思路
- mysql主从架构的复制原理及配置详解
- Leetcode 2. Add Two Numbers
- 单词接龙-洛谷 1019
- struts2保存表单后,进入列表页用redirectAction
- [001-Cortex_M3-GCC汇编] 第一个点灯程序
- 鼠标放上去显示/隐藏效果
- SQL连接查询1 内联接查询
- Leetcode 3. Longest Substring Without Repeating Characters
- 1007. 素数对猜想 (20)
- 7.适配器模式(Adapter Pattern)
- Socket编程(C语言实现):bind()函数英文翻译