成语接龙(dfs)
| 成语接龙 | ||||||
|
||||||
| Description | ||||||
|
给出N个成语,通过成语接龙,求接出最长龙的成语个数。 每一个成语由至少三个至多8个汉字组成,假设前一个成语的最后一个字和后一个成语的第一个字同样,那么就能够接到一起。 为了将问题简化。每一个汉字用4个字母编码取代。保证每一个汉字的都有唯一的编码。全部字母均为小写字母。且以第一个成语为開始成语, 每一个成语仅仅能够使用一次。 |
||||||
| Input | ||||||
|
多组測试数据,对每组数据 第一行是一个整数N。代表有N个成语。 接下来N行,每行一个成语。 (N <= 20) |
||||||
| Output | ||||||
| 输出最长长度 | ||||||
| Sample Input | ||||||
|
5 adfkejimejlsgkeh emiemkwlcuhelmge gkeheohowehiemie lmgejoewijfeabcd emiekejlwejdadfk |
||||||
| Sample Output | ||||||
| 4 | ||||||
| Source | ||||||
|
2014 Winter Holiday Contest 4 注意第一个成语必须是题目给的第一个成语。 。 。。还有这题真坑啊。假设输入while(cin>>n)一直wa,我也不知道为什么,叉姐说是出题人数据有问题,假设知道为什么的请指点一二。 。。 |
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
using namespace std;
struct node
{
char tou[5];
char wei[5];
}a[25];
char str[505];
int maxn = 1;
int visit[25];
int n; int dfs(int deep, int sum)
{
if(sum > maxn) maxn = sum; for(int i = 0; i < n; i++)
{ if(!visit[i])
{
int ok = 0;
for(int j = 0; j < 4; j++)
{
if(a[deep].wei[j] != a[i].tou[j])
{
ok = 1; }
} if(!ok)
{
visit[i] = 1;
dfs(i,sum + 1);
visit[i] = 0;
}
}
}
}
int main()
{
#ifdef xxz
freopen("in.txt","r",stdin);
#endif // xxz while(scanf("%d",&n) != EOF)
{ for(int i = 0; i < n; i++)
{
//cin>>str;
scanf("%s",str);
int len = strlen(str);
for(int j = 0; j < 4; j++)
{
a[i].tou[j] = str[j];
a[i].wei[j] = str[len-4+j];
}
}
memset(visit,0,sizeof(visit));
visit[0] = 1;
maxn = 1;
dfs(0,1);
cout<<maxn<<endl;
// printf("%d\n",maxn);
} return 0;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
成语接龙(dfs)的更多相关文章
- NOIP2000单词接龙[DFS]
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...
- 蓝桥杯—ALGO-18 单词接龙(DFS)
问题描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母, 要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次) ,在两个单词相连时,其 ...
- 再谈Weiphp公众平台开发——1、成语接龙插件
易错点,注意插件的命名 1.创建插件.在weiphp管理后台创建成语接龙插件,勾选安装后立即启用,不需要配置项和管理列表.点“确定”完成插件的创建. 2.安装插件. 3.检测插件是否成功安装.返回到w ...
- python——成语接龙小游戏
小试牛刀的简易成语接龙. 思路—— 1.网上下载成语字典的txt版本 2.通过python进行处理得到格式化的成语,并整理成字典(python字典查找速度快) 3.python程序,查找 用户输入的最 ...
- Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!
英语单词学习应用 周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多.本来周末打算照着扇贝/极光单词,写一个英语单词自测工具.但苦 ...
- 单词接龙dfs洛谷
题目传送门:https://www.luogu.org/problem/show?pid=1019#sub 典型的爆搜,每次更新最大龙长度即可 搜索每个字符串编号,与已经连接好的字符串进行比较,以此往 ...
- HDU - 1546 ZOJ - 2750 Idiomatic Phrases Game 成语接龙SPFA+map
Idiomatic Phrases Game Tom is playing a game called Idiomatic Phrases Game. An idiom consists of sev ...
- python成语接龙小游戏
上一篇讲了小游戏的坑现在把源码放出来 #coding:utf-8 import string import pypinyin import sys import random print(" ...
- 洛谷 P1019 单词接龙 Label:dfs
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...
随机推荐
- [Cycle.js] Read effects from the DOM: click events
So far we only had effects that write something to the external world, we are not yet reading anythi ...
- VSIM生成fsdb波形文件(VERILOG)
VSIM生成fsdb波形文件(verilog) 两步主要的设置 testbench加入函数 运行库调用 1.testbench加入函数 initial begin $fsdbDumpfile(&quo ...
- gstreamer让playbin能够播放rtp over udp流数据
最近一段时间在研究传屏低延迟传输相关的一些东西.本来想使用gstreamer来验证下rtp over udp传送h264 nal数据相关 的,结果发现竟然不能用playbin来播放rtp的数据!诚然, ...
- html label 标签的 for 属性
如果您在 label 元素内点击文本,就会触发此控件.就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上. 有两种使用方法: 方法1 使用for属性 <label for ...
- “Win”组合键
Windows组合键功能: 单独按下显示或隐藏 [开始] 功能表. +Break 显示 [系统内容] 对话方块. +D 显示桌面. +M 最小化所有的视窗. +Shift+M 还原最小化的视窗. +E ...
- 【2】最简单的Laravel5.1程序分析
1.上图!说一下laravel的基本MVC(模型-控制器-视图)原理 2.具体分析 用户输入网址localhost:8888之后,首先请求发送到服务器的laravel应用的public目录下index ...
- 【JAVA编码专题】总结
第一部分:编码基础 为什么需要编码:用计算机看得懂的语言(二进制数)表示各种各样的字符. 一.基本概念 ASCII.Unicode.big5.GBK等为字符集,它们只定义了这个字符集内有哪些字符,以及 ...
- 伪协议触发onbeforeunload
根据MSDN描述,IE的onbeforeunload事件触发条件: 简单点来说就是页面URL发生改变时触发: * 关闭浏览器窗口 * 点击后退.前进.刷新.主页 * 点击链接到新页面 * 调用超链接的 ...
- 继刚接触play framework后,一些心得
我是个小菜鸟,我这些体会跟心得纯属个人观点,仅供参考,勿喷,我想记录下学习的历程,不断成长 在play2.0的框架里面 用到的最多的语言就是scala,对于习惯了java语言的我们来说 看这些语言 ...
- soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)
soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

