2000年NOIP全国联赛普及组NOIP全国联赛提高组

时间限制: 1 s

空间限制: 128000 KB

题目等级 : 黄金 Gold

题解

题目描述 Description

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

输入描述 Input Description

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

输出描述 Output Description

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

样例输入 Sample Input

5

at

touch

cheat

choose

tact

a

样例输出 Sample Output

23

数据范围及提示 Data Size & Hint

(连成的“龙”为atoucheatactactouchoose)

/*
先预处理一下联合个单词首尾相连的重复字母数,然后搜索
*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define N 22
using namespace std;
int head[N],len[N],vis[N],n,ans,cnt;
string s[N];char a1;
struct node
{
int u,v,pre,t;
};node e[N*N];
void add(int x,int y,int z)
{
++cnt;
e[cnt].u=x;
e[cnt].v=y;
e[cnt].t=z;
e[cnt].pre=head[x];
head[x]=cnt;
}
void dfs(int x,int t)
{
ans=max(ans,t);
for(int i=head[x];i;i=e[i].pre)
if(vis[e[i].v]<)
{
vis[e[i].v]++;
dfs(e[i].v,t+len[e[i].v]-e[i].t);
vis[e[i].v]--;
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
string ss;cin>>ss;
s[i]=" ";s[i]+=ss;
len[i]=ss.size();
}
cin>>a1;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
for(int k=;k<=min(len[i],len[j])-;k++)
{
string s1="",s2="";
for(int l=len[i]-k+;l<=len[i];l++)
s1+=s[i][l];
for(int l=;l<=k;l++)
s2+=s[j][l];
if(s1==s2)
{
add(i,j,k);break;
}
}
}
for(int i=;i<=n;i++)
if(s[i][]==a1)
{
memset(vis,,sizeof(vis));
vis[i]++;
dfs(i,len[i]);
}
printf("%d",ans);
return ;
}

最新文章

  1. Git命令
  2. hibernate inverse属性的作用
  3. jQuery scroll事件实现监控滚动条分页示例(转)
  4. 解析const
  5. linux kernel.shmall shemax shemin 參數解釋
  6. JS创建对象
  7. python读取文本、配对、插入数据脚本
  8. 关于用 MySQL 存储 Emoji
  9. jvisualvm 使用
  10. MD5Helper辅助类
  11. SPOJ 3048 - DNA Sequences LCS
  12. .net mvc笔记4_依赖注入
  13. 做.net的早晚会用到,并且网上还没有这方面的正确资料或几乎很少
  14. 一起学Linux01之环境安装
  15. lombok 使用 Idea
  16. java 线程间的通信 (wait / notify / notifyAll)
  17. 推荐一些好的linux学习网站
  18. Universal-Image-Loader解析(三)——用ListView和ViewPager加载网络中的图片
  19. python __all__用法
  20. 利用HttpWebRequest模拟表单提交 JQuery 的一个轻量级 Guid 字符串拓展插件. 轻量级Config文件AppSettings节点编辑帮助类

热门文章

  1. bzoj2744 [HEOI2012]朋友圈——二分图匹配
  2. java replaceAll 忽略大小写
  3. phpci发送邮件
  4. 14款形态各异的超时尚HTML5时钟动画
  5. Python多线程、多进程
  6. MFC学习篇(一):用OpenCV显示视频
  7. Codeforces 763A
  8. JS高级——扩展内置对象的方法
  9. JS——滚动条
  10. 易买网之smartupload实现文件上传