hdu1181变形课
来源:互联网 发布:网络传输速率测试 编辑:程序博客网 时间:2024/06/05 11:52
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181
广搜和深搜都行
代码:(bfs)
#include <cstdio>#include <queue>#include <cstring>using namespace std;char s[1005];int a[30][30];int v[30];int flag ;void bfs(){ queue<int> q; q.push(2); v[2] = 1; while(!q.empty()) { int head = q.front(); q.pop(); for(int i = 1;i <= 26;++i) { if(a[head][i] && !v[i]) { if(i == 13) { flag = 1; return ; } q.push(i); v[i] = 1; } } }}int main(){ while(~scanf("%s",s)) { memset(a,0,sizeof(a)); memset(v,0,sizeof(v)); a[s[0] - 'a' + 1][s[strlen(s) - 1] - 'a' + 1] = 1; while(scanf("%s",s) && strcmp(s,"0")) a[s[0] - 'a' + 1][s[strlen(s) - 1] - 'a' + 1] = 1; flag = 0; bfs(); if(flag) printf("Yes.\n"); else printf("No.\n"); } return 0;}
dfs代码:
#include <cstdio>#include <queue>#include <cstring>using namespace std;char s[1005];int a[30][30];int v[30];int flag ;void dfs(int cur){ if(cur == 13) { flag = 1; return ; } else for(int i = 1;i <= 26;++i) { if(!v[i] && a[cur][i]) { v[i] = 1; dfs(i); v[i] = 0; } }}int main(){ while(~scanf("%s",s)) { memset(a,0,sizeof(a)); memset(v,0,sizeof(v)); a[s[0] - 'a' + 1][s[strlen(s) - 1] - 'a' + 1] = 1; while(scanf("%s",s) && strcmp(s,"0")) a[s[0] - 'a' + 1][s[strlen(s) - 1] - 'a' + 1] = 1; flag = 0; v[2] = 1; dfs(2); if(flag) printf("Yes.\n"); else printf("No.\n"); } return 0;}
0 0
- hdu1181 变形课 dfs
- 变形课 hdu1181 图论
- HDU1181:变形课(DFS)
- hdu1181(变形课)
- HDU1181 变形课
- HDU1181:变形课(DFS)
- hdu1181 变形课
- HDU1181---变形课
- hdu1181 变形课【dfs】
- HDU1181:变形课 【dfs】
- hdu1181(变形课)
- HDU1181 变形课(DFS)
- hdu1181 变形课
- HDU1181:变形课(DFS)
- 【DFS】HDU1181变形课
- HDU1181 变形课 DFS
- hdu1181变形课
- HDU1181 变形课
- MySQL 主从同步设置
- mac下开发工具
- Jquery获得控件值的三种方法总结
- android textview 自动换行 整齐排版
- java编码规范
- hdu1181变形课
- 合并果子
- No Activity found to handle Intent
- 数论-欧拉函数
- Java String和Date的转换
- DDR 速率MT/s(GT/s) 与 MHz的关系
- python 中文乱码问题
- 求圆的周长和面积!利用Scanner创建对象进行数据的输入
- 简单的java通信工具类