杭电ACM1181——变形课
来源:互联网 发布:fastreport 数据分栏 编辑:程序博客网 时间:2024/06/05 00:21
这个题目,简单的搜索题,刚开始我是用并查集做的,结果很明显WA,后来想了下,如果有个单词m开头,b结尾的也可以,所以很错误的想法。运用广搜,可以很好的解决。
我的代码中的是将字符串的位置i入队的,不是整个字符串。
水题一个,下面是AC代码:
#include <iostream>#include <queue>#include <cstring>using namespace std;bool vis[1000];char str[1000][1000];bool flag;void bfs(int n){queue <int> que;int a, len;for(int i = 0; i < n; i++) //将头字母为b的先入队{if(str[i][0] == 'b'){que.push(i);vis[i] = true;}}while(!que.empty()) //进行搜索{a = que.front();que.pop();len = strlen(str[a]) - 1;for(int j = 0; j < n; j++) //遍历所有字符串{if(str[a][len] == 'm') //该字符串最后为m,说明可以完成{flag = true;return;}if(!vis[j] && str[j][0] == str[a][len]) //将跟队列中的字符串的最后一个相同的字符串入队,并且这个字符串没有入队过的{que.push(j);vis[j] = true;}}}}int main(){int i;i = 0;while(cin >> str[i]){vis[i] = false;i++;if(str[i - 1][0] == '0'){vis[i] = false;flag = false; //初始化标记变量bfs(i);if(flag)cout << "Yes." << endl;elsecout << "No." << endl;i = 0;}}return 0;}
0 0
- 杭电ACM1181——变形课
- 杭电1181变形课
- 杭电1181-变形课
- 【杭电】[1181]变形课
- 杭电1181变形课
- 【杭电1181】变形课
- 【杭电oj1181】变形课
- 杭电 1181 变形课
- 杭电-PID1181-变形课
- 杭电oj 1181 变形课
- 变形课 HUD杭电1181 【DFS】
- 杭电1811 变形课(dfs)
- 杭电(hdu)1181 变形课
- 杭电-1181 变形课(深搜)
- 杭电 1181 变形课 DFS
- 杭电3371——————MST的简单变形
- 杭电OJ题 1181 变形课 解题报告
- 杭电 2846 字典树变形
- leetcode Pascal's Triangle II
- Android 底部切换
- cocos2d-x 金品教程汇总
- 安卓,让edittext随手指移动而改变位置
- Response.Redirect()使用技巧
- 杭电ACM1181——变形课
- linux下解压命令大全
- CentOS 7打开NTF文件
- 【二分】POJ 2109
- 用java语言用sort方法实现groupby分组
- 在高配置笔记本式上使用workstation来搭建cloudstack4.3+kvm环境
- JavaScript 前端神器avalonJS入门
- MyBatis Geneator 详解
- android学习 -- 短信发送器