博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NOIP2000]单词接龙
阅读量:5164 次
发布时间:2019-06-13

本文共 1717 字,大约阅读时间需要 5 分钟。

NOIp2000提高组第三题

题目描述

单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。

输入输出格式

输入格式:

输入的第一行为一个单独的整数n (n<=20)表示单词数,以下n 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定存在.

输出格式:

只需输出以此字母开头的最长的“龙”的长度

输入输出样例

输入样例#1:

5attouchcheatchoosetacta

输出样例#1:

23           (连成的“龙”为atoucheatactactouchoose)

思路

  深搜广搜都可以的,匹配字符串是很基本的编程能力,但是要注意不能自己和自己接龙。程序中有注解。

var a:array[1..1000] of ansistring;    b:array[1..1000] of longint;//b[i]表示第i个字符串被使用了几次,自己是不能和自己接龙的    n:longint;    max:longint=0;    ch:string;procedure init;var i:longint;begin    readln(n);    for i:=1 to n do readln(a[i]);    readln(ch);end;function find(x,y:ansistring):longint;var t:boolean;j,x1,y1:longint;s1,s2:ansistring;begin    find:=0;//对函数操作时一定要注意函数的初始值不一定为零,可能是一些乱七八糟的值,一定要清零。无论他是最值,累加器,累乘器时都应如此。    t:=true;    j:=1;    x1:=length(x);    y1:=length(y);    while (j<=x1) and (j<=y1) and (t) do        begin            s1:=copy(x,x1-j+1,j);            s2:=copy(y,1,j);            if s1=s2 then                begin                    t:=false;                    find:=y1-j;                end;            inc(j);        end;end;procedure main(x:longint;y:ansistring);var k,i:longint;begin    if x>max then max:=x;    for i:=1 to n do        begin            k:=0;            k:=find(y,a[i]);            if (k>0)and(b[i]<2) then                begin                    inc(b[i]);                    main(k+x,a[i]);//深搜加回溯                    dec(b[i]);                end;        end;end;begin    fillchar(b,sizeof(b),0);    init;    main(1,ch);    writeln(max);end.
View Code

 

转载于:https://www.cnblogs.com/yangqingli/p/4733715.html

你可能感兴趣的文章
Numpy学习笔记
查看>>
SQL语句中截取字符串Substr
查看>>
DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录
查看>>
Application Pool Identities
查看>>
Codeforces 938C - Constructing Tests
查看>>
8.2 文件输入输出
查看>>
多用户磁盘管理 - lvm + quota
查看>>
Nginx服务编译安装、日志功能、状态模块及访问认证模式实操
查看>>
2017-3-24 开通博客园
查看>>
【MySQL性能优化】MySQL常见SQL错误用法
查看>>
python学习手册笔记——25.OOP宏伟蓝图
查看>>
3.6 字符串
查看>>
Vue2全家桶之一:vue-cli(vue脚手架)超详细教程
查看>>
smarty模板(转载)
查看>>
四年多没碰C++了。。。
查看>>
nginx负载均衡 ->Tomcat8集群 -> sentinel集群 -> redis3主从
查看>>
Tomato的init启动流程分析(原创)
查看>>
java中static使用之静态方法注意点
查看>>
方格取数
查看>>
用Darwin和live555实现的直播框架
查看>>