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

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

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

【输入样例】
5
at
touch
cheat
choose
tact
a
【输出样例】
23
【心得】决策变成了所有单词,选择有重叠字符串(有可能一个字符或者多个字符)的单词即可,注意传递字符串参数时使用副本。
【AC代码】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,ma=0,vis[25];
char word[25][25];
void dfs(char s[])
{char t[200];int lens=strlen(s);for(int i=1;i<=n;i++){int len=min(lens,(int)strlen(word[i]));if(vis[i]<2)//每个单词最多使用两次{for(int j=1;j<=len-1;j++)//重叠宽度不能多于单词的长度{if(strncmp(word[i],s+lens-j,j)==0)//比较两个字符串的前j位,其中s+lens-j为连接字符串的后j位{vis[i]++;strcpy(t,s);strcat(t,word[i]+j);dfs(t);//传送最新的连接字符串vis[i]--;}} }   }if(ma<lens) ma=lens;
}
int main()
{char t[100];cin>>n;for(int i=1;i<=n+1;i++) cin>>word[i];for(int i=1;i<=n;i++){if(word[i][0]==word[n+1][0]){strcpy(t,word[i]);//不能直接传送原单词的地址,使用副本vis[i]++;dfs(t);vis[i]--;} } cout<<ma;return 0;
}

信息学奥赛一本通1220相关推荐

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

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

  2. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  3. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  4. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  5. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  6. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  7. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  8. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  9. 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC

    http://ybt.ssoier.cn:8088/show_source.php?runid=14630195 /* 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC http:/ ...

  10. 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂

    信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂 https://blog.csdn.net/mrcrack/article/details/82846727 快速幂取模算法如何实现? h ...

最新文章

  1. pycharm 远程调试图文_Pycharm配置远程调试的图文步骤
  2. linux c ping 分析实现
  3. python dlib学习(八):训练人脸特征点检测器
  4. 【文章】一副对联,便写尽了人生
  5. schema在oracle里是什么意思
  6. 表单多条相同name数据的获取
  7. 【渝粤教育】国家开放大学2018年春季 0314-21T兽医基础 参考试题
  8. 在eclipse中一种简单使用debug的方式
  9. 语音 AI 技术简介
  10. word文件太大如何压缩到最小?
  11. Postek博思得标签打印机更换电脑,打印出来标签空白
  12. host文件的工作原理及应用
  13. android-第一行代码-第六章数据储存——持久化技术 含MMKV和Room新知识点(温故而知新)学习记录
  14. java植物大战僵尸_JAVA课程设计——植物大战僵尸(团队)
  15. ClickHouse压缩率
  16. java对接钉钉发送消息通知
  17. glTexImage2D 函数详解
  18. LightOJ - 1395
  19. Pycharm远程连接服务器(实践笔记)
  20. htmldd隐藏,如何在隐藏“dd”后隐藏“dd”

热门文章

  1. 国内各大互联网公司相关技术博客3.0版 (集合腾讯、阿里、百度、搜狐、新浪、网易、360等共29个)
  2. 地址后面的sessionid怎么消除_富贵包的消除和改善头前倾,通过运动和减肥可以吗?...
  3. Java计算机毕业设计大学生企业推荐系统源码+系统+数据库+lw文档
  4. 中国各个省市区(县)级联数据
  5. Springboot接入阿里云物联网SDK实现控制网络继电器通断
  6. 刀与剑-C++ COM组件调用
  7. COM组件和一般DLL 的区别
  8. Tomcat6 无法登陆Tomcat Manager
  9. Lintcode 算法
  10. 微博认证怎么弄黄v:微博兴趣认证指定领域