[NOIP提高组2000]单词接龙
来源:互联网 发布:淘宝宝贝创建时间 编辑:程序博客网 时间:2024/06/05 00:49
题目描述
【问题描述】
单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的 最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果 接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。
【输入文件】
输入的第一行为一个单独的整数n (n<=20)表示单词数,以下n 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头 的字母。你可以假定以此字母开头的“龙”一定存在.
【输出文件】
只需输出以此字母开头的最长的“龙”的长度
输入
输出
样例输入
5
at
touch
cheat
choose
tact
a
样例输出
23
由于数据较弱,所以dfs。
具体见代码,因为不知道dfs要怎么说。
#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<iostream>using namespace std;string s[21];string st;int n,maxl=0;int tf[25];void put_tog(string &x,string y,int k)//让y接在x后面 { int l=y.size(); for(int i=k;i<l;i++) x+=y[i]; //cout<<x; return;}bool can(string s,string m,int k)//判断s和m是否可以前k位匹配 { int lens = s.size(); for(int i = 0;i < k; i ++) if(s[lens - k + i] != m[i]) return false; return true;}void dfs(string now){ //printf("!"); int yu=now.size(); maxl=max(maxl,yu); for(int i=1;i<=n;i++) {// if(tf[i]>=2) continue; int hu=s[i].size(); for(int j=1;j<=hu;j++)//判断从哪个位置开始可以接的 { if(can(now,s[i],j)) { string temp=now; put_tog(temp,s[i],j); if(temp==now) continue; tf[i]++; dfs(temp); tf[i]--; } } }}int main(){ scanf("%d",&n); memset(tf,0,sizeof(tf)); for(int i=1;i<=n;i++) cin>>s[i]; cin>>st; dfs(st); printf("%d",maxl);}
阅读全文
0 0
- [NOIP提高组2000]单词接龙
- 【NOIP 2000 提高组 T3】单词接龙(dfs)
- NOIP 2000年提高组复赛 单词接龙
- codevs 1018 [noip 2000 提高] 单词接龙
- 2000NOIP 单词接龙
- NOIP 2000 单词接龙
- Codevs 1018 单词接龙 DFS --2000年NOIP全国联赛普及组NOIP全国联赛提高组
- wikioi 1018 单词接龙 提高组 2000
- NOIP2000提高组 单词接龙
- codevs 1018 noip 2000 单词接龙
- NOIP 2000单词接龙 解题报告(爆搜)
- NOIP 2000 单词接龙ACC pascal程序加题解。
- luogu1019【2000提高】单词接龙(字符串+dfs)
- [T][2]NOIP 2001 单词接龙
- [NOIP提高组2001]统计单词个数
- NOIP提高组2001-统计单词个数
- 【DFS】CODE[VS] 1018&&NOIP2000提高组T3 单词接龙 (日常刷题???)
- dfs(洛谷1019 单词接龙NOIp2000提高组第三题)
- 《蓝牙4.0实战演练》第二版 网蜂团队 倾力打造(2014-3-6)
- Android N混合使用AOT编译,解释和JIT三种运行时
- JSP学习笔记(二)之JSP动作
- Python3.x中sklearn机器学习库中PCA参数问题
- ShareSDKUtils,封装的分享工具类,使用默认的GUI或者自定义分享某个平台
- [NOIP提高组2000]单词接龙
- nyoj746 整数划分(四)
- C# DevExpress实现搜索智能提示功能
- java下划线命名转驼峰命名
- HDU 1540 Tunnel Warfare线段树解法及分块解法
- hdu6016二分图思路
- Linux下glib源码安装使用方法
- Bootstrap模版框架怎么用
- 10款超好用的开源大数据分析工具