1220:单词接龙

简介: 1220:单词接龙

1220:单词接龙

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

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

【输入】

输入的第一行为一个单独的整数n(n≤20)表示单词数,以下n行每行有一个单词(只含有大写或小写字母,长度不超过20),输入的最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定存在。

【输出】

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

【输入样例】

5

at

touch

cheat

choose

tact

a

【输出样例】

23

【来源】

No

1. #include<bits/stdc++.h>
2. using namespace std;
3. string s[101],ss;
4. int l[101],n,maxx;
5. bool cha(string x,string y,int k)//判断是否可以接龙 
6. {
7.  int lenx=x.length();
8.  for(int i=0;i<k;i++)
9.    if(x[lenx-k+i]!=y[i])
10.       return false;
11.   return true;
12. }
13. void cp(string &x,string y,int k)//接龙 
14. {
15.   int leny=y.length();
16.   for(int i=k;i<leny;i++)
17.     x+=y[i];
18. }
19. void str(string ss)
20. {
21.   int w=ss.length();
22.   maxx=max(maxx,w);//保存最大长度 
23.   for(int i=1;i<=n;i++) {
24.     if(l[i]>=2) continue;//用过两次跳过 
25.     for(int j=1;j<=s[i].length();j++){
26.       if(cha(ss,s[i],j)){//判断可接 
27.         string t=ss;
28.         cp(t,s[i],j);//连接 
29.         if(t==ss) continue;//与连接前长度一样跳过 
30.         l[i]++;//标记使用次数 
31.         str(t);//继续调用 
32.         l[i]--;//回溯 
33.       }
34.     }
35.   }
36. }
37. int main()
38. {
39.   scanf("%d",&n);
40.   for(int i=1;i<=n;i++) cin>>s[i];
41.   cin>>ss;
42.   str(ss);
43.   printf("%d",maxx); 
44.   return 0;
45.  }

 

相关文章
|
6月前
|
存储 前端开发 UED
08.HarmonyOS Next响应式布局秘籍:掌握Flex换行与对齐技术
在当今多设备、多屏幕尺寸的应用环境中,响应式布局已成为前端开发的核心技能。HarmonyOS Next作为面向全场景的操作系统,其UI框架提供了强大的响应式布局能力,使应用能够在手机、平板、智能手表等不同设备上呈现最佳效果。
214 2
|
3月前
|
Web App开发 人工智能 IDE
从痛点到解决方案:为什么我开发了Chrome元素截图插件
传统的截图方式要么截取整个页面然后手动裁剪,要么使用浏览器自带的截图功能,但效果都不理想。特别是当内容包含SVG元素或复杂样式时,截图质量和速度、便捷性往往不尽如人意。
216 4
|
Web App开发 JavaScript 前端开发
深入浅出Node.js:从零开始构建后端服务
【10月更文挑战第42天】在数字时代的浪潮中,掌握一门后端技术对于开发者来说至关重要。Node.js,作为一种基于Chrome V8引擎的JavaScript运行环境,允许开发者使用JavaScript编写服务器端代码,极大地拓宽了前端开发者的技能边界。本文将从Node.js的基础概念讲起,逐步引导读者理解其事件驱动、非阻塞I/O模型的核心原理,并指导如何在实战中应用这些知识构建高效、可扩展的后端服务。通过深入浅出的方式,我们将一起探索Node.js的魅力和潜力,解锁更多可能。
|
4月前
|
人工智能 JSON 供应链
5C提示词工程框架:让AI成为你的贴心助手
通过清晰度、上下文、命令、链式、持续优化五个维度,教你如何与AI进行高效对话。从小白到专家,一篇文章搞定所有提示词技巧!
|
11月前
|
人工智能 调度 芯片
PAI训练服务:云上大模型训练新篇章
本文介绍了通用AI时代下的新训练方法及PAI平台的优化。随着大模型时代的到来,算力需求激增,硬件和网络通信成为瓶颈。PAI平台通过自动容错、3D健康检测等技术确保训练稳定性;通过资源配额、智能调度等提高性价比;并推出PAI-TorchAcc和PAI-ChatLearn两大引擎,分别实现高效训练加速和灵活的对齐训练,显著提升训练性能与效果。这些改进解决了大规模AI训练中的关键问题,提升了效率和稳定性。
|
人工智能 自然语言处理 测试技术
LG开源韩语大模型Exaone 3.0,8万亿token训练数据
【9月更文挑战第10天】韩国电子巨头LG旗下的AI研究机构近日宣布,已成功开发并开源了专为韩语设计的大模型Exaone 3.0,成为人工智能领域的又一里程碑。该模型基于8万亿token的数据训练而成,在多个基准测试中表现出色,尤其在理解和生成韩语方面。作为LG首款开源大型语言模型,Exaone 3.0将促进开放研究与技术创新,推动AI发展。尽管存在计算资源和多语言适应性等挑战,其发布仍为AI领域带来新机遇。论文详情见[这里](https://arxiv.org/abs/2408.03541)。
332 9
|
自然语言处理 算法 数据挖掘
基于python豆瓣电影评论的情感分析和聚类分析,聚类分析有手肘法进行检验,情感分析用snownlp
本文介绍了一个基于Python的情感分析和聚类分析项目,使用snownlp库对豆瓣电影评论进行情感分析,并采用手肘法辅助K-means算法进行聚类分析,以探索评论中的不同主题和情感集群。
471 5
基于python豆瓣电影评论的情感分析和聚类分析,聚类分析有手肘法进行检验,情感分析用snownlp
|
传感器 机器学习/深度学习 数据采集
无人飞行器的技术工作原理
无人飞行器(UAV,即Unmanned Aerial Vehicle)的工作原理涉及多个复杂的系统和技术。
651 7
|
Rust 算法 数据安全/隐私保护
【密码学】一文读懂SM3
SM3是中华人民共和国政府采用的一种密码散列函数标准,前身为SCH4杂凑算法,由国家密码管理局于2010年12月17日发布,相关标准为&quot;GM/T 0004-2012 《SM3密码杂凑算法》&quot;。
4692 0
【密码学】一文读懂SM3
|
人工智能 前端开发 JavaScript
基于Python+Flask+Echart实现二手车数据分析展示
基于Python+Flask+Echart实现二手车数据分析展示
459 1