当前位置: 首页 > news >正文

昆明360网站制作互联网销售

昆明360网站制作,互联网销售,做机械比较好的外贸网站,wordpress搭建题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时&…

题目描述

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

输入格式

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

 

输出

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

样例输入

5
at
touch
cheat
choose
tact
a

样例输出

23

思路:找到以"龙"开头的单词,从其后往前,找到以该单词中字母开头的另一个单词,接着搜索。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<string>
 4 using namespace std;
 5 string word[22];
 6 int vis[30];
 7 int N;
 8 int ans;
 9 bool flag = false;
10 void dfs(string str, int o)
11 {
12     int i, j, k, s, len1, len2, pos;
13     if(vis[o] > 2)return ;
14     if((len1 = str.size()) > ans)ans = str.size();
15     for(i = 0; i < N; i++){
16         if(vis[i] < 2){//选出可用的单词
17             flag = false;
18             for(pos = len1-1; pos >= 0; pos--){
19                 if(str[pos] == word[i][0]){//pos位置与单词第一个字母相同
20                     len2 = word[i].size();//
21                     for(k = pos,s = 0; k < len1 && len1-pos<len2; k++,s++){
22                         if(str[k] != word[i][s])break;
23                     }
24                     if(len1-pos == s){flag = true;break;}
25                 }
26             }
27             if(flag == true){
28                 string t = str;
29                 t.append(word[i], s, len2-s);//向t添加多出的部分s位置起,len2-s个字符
30                 if(t.size() > ans)ans = t.size();
31                 vis[i]++;
32                 dfs(t, i);
33                 vis[i]--;
34             }
35         }
36 
37     }
38 }
39 int main()
40 {
41     int i, j;
42     char top;
43     cin>> N;
44     for(i = 0; i < N; i++){
45         cin>> word[i];
46     }
47     cin>> top;
48     for(i = 0; i < N; i++){
49         if( top == word[i][0] ){
50             vis[i]++;           //每个单词最多出现两次
51             dfs(word[i], i);    //第i个单词能接上龙头
52             memset(vis, 0, sizeof(vis));
53         }
54     }
55     cout<<ans<<endl;
56     return 0;
57 }
View Code

 

转载于:https://www.cnblogs.com/qiu520/p/3608010.html

http://www.lbrq.cn/news/2386207.html

相关文章:

  • 建设一个企业网站要多少钱seo是什么化学名称
  • wordpress免费的模板seo描述快速排名
  • 做python项目的网站2023年免费进入b站
  • 网站用户体验解决方案外包公司和劳务派遣
  • 教育网站 php百度首页优化
  • 门户网站直接登录系统google 浏览器
  • 尚云网站建设seminar是什么意思
  • 污染网站代码seo流量
  • 桐乡建设规划局网站seo优化的价格
  • 网站tdk设置界面排名优化公司口碑哪家好
  • 万网主机怎么做网站大数据网站
  • 关于水果怎么做网站域名站长工具
  • 网站建设规划报告湖南企业竞价优化服务
  • 哪个公司可以专门做网站今天今日头条新闻
  • 香港特别行政区土地面积seo怎么优化
  • 网站开发验收方案新闻内容摘抄
  • 张家界酷网科技网站建设网站转让出售
  • 宝安做棋牌网站建设哪家技术好官网seo是什么
  • 动漫设计软件厦门网站优化
  • 大淘客网站怎样做百度推广长沙seo优化推广公司
  • 网站改了关键词百度关键词优化软件
  • 服装网站建设策划书地推公司
  • wordpress 留言簿seo具体怎么优化
  • 免费外国黄色网站sem是什么显微镜
  • 北京手机网站建设公司百度seo排名360
  • 做羞羞的专门网站重庆seo黄智
  • 中国建设银行嵊州市支行网站搜索引擎广告形式有
  • 优化企业网站模板企业查询网
  • 小米路由器做网站服务器吗seo搜索引擎优化实训总结
  • 银川如何做百度的网站自助建站系统代理
  • 深度学习Depth Anything V2神经网络实现单目深度估计系统源码
  • Jenkins自动化部署.NET应用实战:Docker+私有仓库+SSH远程发布
  • VMC850立式加工中心Y轴传动机械结构设计cad【7张】三维图+设计说明书
  • Java Map 集合详解:从基础语法到实战应用,彻底掌握键值对数据结构
  • [Linux]如何設置靜態IP位址?
  • 前端下载文件并按GBK编码解析内容