hdu1181 dfs搜索之变形课
原题地址
这道题数据据说比較水,除了第一组数据是Yes以外。其余都是No。非常多人抓住这点就水过了。当然了,我认为那样过了也没什么意思。刷oj刷的是质量不是数量。
这道题从题目上来看是个不错的 搜索题,解法多种多样,有 dfs。bfs,并查集,dijkstra算法都能解决。
题目分析:
题目中给了非常多字符串。可是关心的仅仅是字符串的第一个和最后一个字符。咋看起来。貌似是要建立一个个字符间的“映射”,事实上不然,这事实上能够转化为一张26*26的有向图。
有最多26个结点,原先的字符间映射关系就转化为结点之间有路径。问题就变成了能否找一条路径从结点b到结点m。
我用的dfs解的。
#include<iostream>
#include<cstring>
using namespace std;
bool g[26][26];//全局变量声明时会被初始化为0(false)
bool used[26];//全局变量声明时会被初始化为0(false)
bool dfs(int i)
{
used[1]=true;
for(int j=0;j<26;j++)
{
if(i!=j&&!used[j]&&g[i][j])
{
if(i!=1)
g[1][j]=true;
used[j]=true;
dfs(j);
}
}
return g[1][12];//b为1,m为12
}
int main()
{
char s[100];
while(cin>>s)
{
if(s[0]!='0')
{
int len=strlen(s);
g[s[0]-'a'][s[len-1]-'a']=true;
continue;
}
if(dfs(1))
cout<<"Yes."<<endl;
else
cout<<"No."<<endl;
memset(g,false,sizeof(g));
memset(used,false,sizeof(used));
}
}
hdu1181 dfs搜索之变形课的更多相关文章
- hdu1181 (变形课)简单地dfs
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=259#problem/F Description 呃......变形课上Harr ...
- HDU1181 变形课(DFS) 2016-07-24 13:31 73人阅读 评论(0) 收藏
变形课 Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒 ...
- hdu1181 变形课(vector容器+dfs)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submi ...
- HDU1181 变形课 (回溯法)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
- 变形课(dfs)
变形课 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Total Submissi ...
- hdu 1181:变形课(搜索水题)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
- hdu1181 变形课
Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
- 变形课(DFS hdu 1181)
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
- 变形课--hdu1181
变形课 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submis ...
随机推荐
- LinkdList和ArrayList异同、实现自定义栈
//.LinkdList和ArrayList异同 //ArrayList以连续的空间进行存储数据 //LinkedList以链表的结构存储数据 //栈 先进后出 最上面是栈顶元素 arrayLiat自 ...
- mkdir touch vim
vim和touch都用于新建文件 mkdir用于新建文件夹
- PHP09 字符串和正则表达式
学习要点 字符串处理简介 常用的字符串输出函数 常用的字符串格式化函数 字符串比较函数 正则表达式简介 正则表达式语法规则 与perl兼容的正则表达式函数 字符串处理介绍 Web开发中字符串处理 ...
- Linux启动流程CentOS6和7的区别
目 录 Linux启动流程 I 第1章 CentOS6启动流程 1 1.1 BIOS 1 1.2 MBR 1 1.3 GRUB 1 1.4 kernel(加载内核) ...
- Ubuntu配置TFTP服务器
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的文件传输服务 ...
- Python旅途——文件操作
Python--文件操作 1.理解文件操作 可能有的时候有人会在想为什么要对文件进行操作,无论对于文件还是网络之间的交互,我们都是建立在数据之上的,如果我们没有数据,那么很多的事情也就不能够成立,比如 ...
- python之多线程与多进程
1. 多进程与多线程 (1)背景:为何需要多进程或者多线程:在同一时间里,同一个计算机系统中如果允许两个或者两个以上的进程处于运行状态,这便是多任务.多任务会带来的好处例如用户边听歌.边上网.边打印, ...
- MySQL 存储 utf8mb4
1.如果是阿里云数据库 a.控制台->修改参数character_set_server参数为UTF8mb4 b.设置库的字符集为UTF8mb4 2.如果是自己mysql服务器 [client] ...
- Sticky footer经典布局--绝对底部布局
原文转载于:https://cnodejs.org/topic/56ebdf2db705742136388f71 何为Sticky footer布局? 我们常见的网页布局方式一般分为header(页头 ...
- Run-time Settings--General--Run Logic
LR单用户,重复操作日志 案例:假如你想在一个脚本中,实现登录执行1次,查询执行2次,插入执行3次,怎么办?录3个脚本?每个事务分别在脚本中复制N次? 当然不用,LR早就想到了你的需求,下面让我们隆重 ...