hdu 1181 (DFS 入门)
problem link adress: http://acm.hdu.edu.cn/showproblem.php?pid=1181
给一列单词序列,如果你能找出一个单词以‘b’开始,并且联系到一个单词以‘m’开始,就输出“Yes.”;
一个单词联系到下一个单词的条件是:本单词的结尾的字符是下一个单词的第一个字符。

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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?