1181:变形课
2015-09-29 19:51
218 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181
方法:bfs
思路:题目要求寻找到有这样的咒语即可,所以用bfs就可以。不过本体的bfs比较特殊,并不是很符合套路,但是仍然可以按照模板写出。重点在与flag在什么位置清零,j在每一组数据完成之后一定要清零,另外还要注意mark数组一定要有,如果不标记,那么就会出现堆栈溢出的情况,因为很有可能一个单词开头结尾相同,那么他将无休止的调用自己。
难点:flag和索引清零的位置。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int MAX = 1000000;
bool flag = 0;
int i = 0;
bool mark[MAX];
struct Word
{
char s;
char e;
}w[10000];
void dfs(Word m)
{
if(m.e == 'm')
{
flag = 1;
return;
}
for(int j = 0;j < i;j++)
{
if(m.e == w[j].s && mark[j] == 0)
{
mark[j] = 1;
dfs(w[j]);
mark[j] = 0;
}
}
}
int main()
{
string s;
while(cin>>s)
{
if(s == "0")
{
memset(mark,0,sizeof(mark));
for(int j = 0;j < i;j++)
{
if(w[j].s == 'b')
{
dfs(w[j]);
}
}
if(flag == 1)
cout<<"Yes."<<endl;
else
cout<<"No."<<endl;
flag = 0;
i = 0;
}
else
{
w[i].s = s[0];
w[i].e = s[s.length()-1];
i++;
}
}
}
方法:bfs
思路:题目要求寻找到有这样的咒语即可,所以用bfs就可以。不过本体的bfs比较特殊,并不是很符合套路,但是仍然可以按照模板写出。重点在与flag在什么位置清零,j在每一组数据完成之后一定要清零,另外还要注意mark数组一定要有,如果不标记,那么就会出现堆栈溢出的情况,因为很有可能一个单词开头结尾相同,那么他将无休止的调用自己。
难点:flag和索引清零的位置。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int MAX = 1000000;
bool flag = 0;
int i = 0;
bool mark[MAX];
struct Word
{
char s;
char e;
}w[10000];
void dfs(Word m)
{
if(m.e == 'm')
{
flag = 1;
return;
}
for(int j = 0;j < i;j++)
{
if(m.e == w[j].s && mark[j] == 0)
{
mark[j] = 1;
dfs(w[j]);
mark[j] = 0;
}
}
}
int main()
{
string s;
while(cin>>s)
{
if(s == "0")
{
memset(mark,0,sizeof(mark));
for(int j = 0;j < i;j++)
{
if(w[j].s == 'b')
{
dfs(w[j]);
}
}
if(flag == 1)
cout<<"Yes."<<endl;
else
cout<<"No."<<endl;
flag = 0;
i = 0;
}
else
{
w[i].s = s[0];
w[i].e = s[s.length()-1];
i++;
}
}
}
相关文章推荐
- IOS JSON的四种解析方法(转)
- 总结和目标,我的下半年学习计划。
- 笔记:Oracle SQL 高级编程 第1章 SQL 核心
- Global File System
- 软件测试过程及其管理
- 7. --SQLite 专属的整体查找
- 经典图书清单
- 项目里出现的问题03 (bug)
- NOJ-1162-简单编码
- hdu 5477__A Sweet Journey
- iOS讲解迷惑深入浅出之复杂对象的归档
- 360 2015校园招聘 第二题
- KMP模板
- JavaScript 控制元素隐藏显示
- C++多继承的研究
- Nosql数据库——redis(三)数据类型
- 奇偶数判断1(if,else if语句)
- UIWebView 操作
- 那条linq语句为啥这么慢
- PAT1002 写出这个数