题目描述

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

输入输出格式

输入格式:

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

输出格式:

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

------------------------------------------------------------------------------------------------------------

DFS,注意出现两次;

直接从l-mx开始,要不然一定会覆盖

string足矣

#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int n;
string a[30],b;
int vis[30];
int mxl=0,mx=0;
bool cmp(string s,int st,int j){for(int i=st;i<s.size();i++)if(s[i]!=a[j][i-st]) return false;return true;
}
void dfs(string s){int l=s.size();                                    //    cout<<s<<endl;mxl=max(mxl,l);for(int i=(l-mx>0?l-mx:0);i<l;i++){for(int j=0;j<n;j++){if(vis[j]==2) continue;if(a[j].size()<=l-i) continue;          if(!cmp(s,i,j)) continue;               vis[j]++;dfs(s+a[j].substr(l-i,a[j].size()-l+i));vis[j]--;}}
}
int main(){cin>>n;for(int i=0;i<n;i++) {cin>>a[i]; if(a[i].size()>mx) mx=a[i].size();}cin>>b;dfs(b);cout<<mxl;
}

NOIP2000单词接龙[DFS]相关推荐

  1. P1019 单词接龙 (DFS)

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  2. codevs1018 单词接龙(DFS)

    题目描述 Description 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在 ...

  3. [NOIP2000]单词接龙(牛客)

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙&q ...

  4. 洛谷 P1019 单词接龙 Label:dfs

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  5. 信息学奥赛一本通 1220:单词接龙 | 1913:【00NOIP普及组】单词接龙 | OpenJudge NOI 2.5 8783 | 洛谷 P1019 [NOIP2000 提高组] 单词接龙

    [题目链接] ybt 1220:单词接龙 ybt 1913:[00NOIP普及组]单词接龙 OpenJudge NOI 2.5 8783:单词接龙 洛谷 P1019 [NOIP2000 提高组] 单词 ...

  6. P1019 [NOIP2000 提高组] 单词接龙

    P1019 [NOIP2000 提高组] 单词接龙 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 整体思路:1.先将每个单词与另外的单词重叠的部分算出来记作yc[][]: 2.然后 ...

  7. 洛谷 [P1019 单词接龙] {搜索|DFS} 奋斗的珂珂~

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  8. 洛谷 P1019 单词接龙 (DFS)

    题目传送门 当时一看到这题,蒟蒻的我还以为是DP,结果发现标签是搜索-- 这道题的难点在于思路和预处理,真正的搜索实现起来并不难.我们可以用一个贪心的思路,开一个dic数组记录每个单词的最小重复部分, ...

  9. 算法提高课-搜索-DFS之搜索顺序-AcWing 1117. 单词接龙:dfs

    题目分析 来源:acwing 分析:外部dfs,需要状态恢复. 字符串a的后k的字母 和字符串b的前k个字母是否相同,用substr函数判断:if(a.substr(a.size() - k, k) ...

最新文章

  1. CVPR-2021收集
  2. 国内电商场景大战中,企业如何寻找有效增长点?这里有答案了
  3. 神策用户标签系统,深入业务构建用户价值体系
  4. pat 甲级1013
  5. mysql query sql_sql:query 标签
  6. android运行时状态,Android 如何保存Android 运行时状态
  7. 用 HTML 格式导出 Excel 时,如何保留显示网格线
  8. Web Uploader文件上传插件
  9. Native Instruments Flair for Mac - 老式模拟磁带和踏板效果器
  10. 汉字时钟屏保软件/汉字时钟电脑屏幕保护下载/汉字时钟屏保/windows屏保
  11. 江苏省淮安市谷歌高清卫星地图下载
  12. 怎么看cpu的好坏 图文告诉你电脑cpu怎么看
  13. 从 ADNI 的 XML 文件中读取临床信息
  14. 微信小程序进阶学习笔记Day05
  15. Python中列表去重,保留原先顺序的八种方法
  16. 2021 年 Q4 随笔
  17. cygwin生成so
  18. shell的一些一句话东西
  19. 通达OA用户操作手册(二)
  20. 【Springboot 入门培训】#3 MyBatis 多数据源与缓存和数据连接池设置

热门文章

  1. 最短路dijkstra算法详解_图论系列开始填坑--Dijkstra,单源最短路
  2. python super详解_python中super()详解
  3. java透明度_纯度与参考透明度
  4. preferredsize JAVA_Java JScrollPane.getPreferredSize方法代码示例
  5. lesson 2.4 - Converting MEL Commands to Python
  6. 基于DenseNet和自注意机制融合的脐橙病虫害鉴定(DenseNet加入注意力+自然数据集扩大)
  7. 基于深度学习模型的麻蕉疾病自动识别(增加形态计量和几何分析)
  8. 猜算式,四个两位数字不可以重复(一)
  9. 跨区域报考计算机考试可以吗,考生注意!2020年医师资格机考跨题型不可以回看(附上机操作系统)...
  10. pythonjam安装库_python及pycharm的安装