觉得浮夸了四年,漠然发现原来是浮躁了四年!

hdu 1181 (DFS 入门)

problem link adress:   http://acm.hdu.edu.cn/showproblem.php?pid=1181

给一列单词序列,如果你能找出一个单词以‘b’开始,并且联系到一个单词以‘m’开始,就输出“Yes.”;

一个单词联系到下一个单词的条件是:本单词的结尾的字符是下一个单词的第一个字符。

复制代码
View Code
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 using namespace std;
 5 struct node{
 6     char s,e;
 7 }s[1000];
 8 int k;
 9 int flag;
10 int mark[1000];
11 int judge;
12 bool DFS(char c)
13 {
14     if(flag==1)/*if  flag=1, that means we have found it.we needn't continue*/
15         return true;
16     if(c=='m')
17     {
18         flag=1;
19         return true;
20     }
21     int i;
22     for(i=0;i<k;i++)
23     {
24         if(!mark[i]&&s[i].s==c)
25         {
26             mark[i]=1;
27             DFS(s[i].e);
28             mark[i]=0;
29         }
30     }
31     return false;
32 }
33 int main()
34 {
35     char in[100];
36     while(gets(in))
37     {
38         k=0;
39         judge=0;
40         while(in[0]!='0')
41         {
42             s[k].s=in[0];
43             s[k].e=in[strlen(in)-1];
44             k++;
45             if(in[0]=='b')  judge++;
46             if(in[0]=='m')  judge++;
47                 gets(in);
48         }
49         if(judge<2)  
50         { printf("No.\n");
51           continue;
52         }
53         flag=0;
54         memset(mark,0,sizeof(mark));
55         DFS('b');
56         if(flag)
57             printf("Yes.\n");
58         else
59             printf("No.\n");
60     }
61     return 0;
62 }
63 
64     
复制代码

 

 

posted @   heat nan  阅读(184)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示