ccf 201312-5I’m stuck!
来源:互联网 发布:风险矩阵图案例 编辑:程序博客网 时间:2024/05/16 11:56
#include<iostream>using namespace std;char s[55][55];int visited[55][55];int vis[55][55];char shang[8] = "+|TS";char xia[8]= "+|TS.";char zuo[8] = "+-TS";char you[8]= "+-TS";bool f(char cc[8], char e) { if (e == 0)return false; for (int i = 0; i < 8; ++i) { if (cc[i] == e) return true; } return false;}void dfs(int r, int c) { switch (s[r][c]) { case 0:break; case '#':break; case '+': case 'S': case 'T': if (!visited[r - 1][c]) { visited[r - 1][c] = 1; dfs(r - 1, c); } if (!visited[r + 1][c]) { visited[r + 1][c] = 1; dfs(r + 1, c); } if (!visited[r][c - 1]) { visited[r][c - 1] = 1; dfs(r, c - 1); } if (!visited[r][c + 1]) { visited[r][c + 1] = 1; dfs(r, c + 1); } break; case '-': if (!visited[r][c - 1]) { visited[r][c - 1] = 1; dfs(r, c - 1); } if (!visited[r][c + 1]) { visited[r][c + 1] = 1; dfs(r, c + 1); } break; case '|': if (!visited[r - 1][c]) { visited[r - 1][c] = 1; dfs(r - 1, c); } if (!visited[r + 1][c]) { visited[r + 1][c] = 1; dfs(r + 1, c); } break; case '.': if (!visited[r + 1][c]) {visited[r + 1][c] = 1; dfs(r + 1, c); } default: break; }}void dfs2(int r, int c) { if (!vis[r - 1][c] && f(xia, s[r - 1][c])) { vis[r - 1][c] = 1; dfs2(r - 1, c); } if (!vis[r + 1][c] && f(shang, s[r + 1][c])) { vis[r + 1][c] = 1; dfs2(r + 1, c); } if (!vis[r][c-1] && f(you, s[r][c-1])) { vis[r][c-1] = 1; dfs2(r, c-1); } if (!vis[r][c + 1] && f(zuo, s[r][c + 1])) { vis[r][c + 1] = 1; dfs2(r, c +1); }}int main(){ int R, C; cin >> R >> C; int sr, sc, tr, tc; getchar(); for (int i = 1; i <= R; ++i) { for (int j = 1; j <= C; ++j) { cin >> s[i][j]; if (s[i][j] == 'S') { sr = i; sc = j; } if (s[i][j] == 'T') { tr = i; tc = j; } } getchar(); } visited[sr][sc] = 1; dfs(sr,sc); if (!visited[tr][tc]) { cout << "I'm stuck!" << endl; return 0; } vis[tr][tc] = 1; dfs2(tr, tc); int cnt = 0; for (int i = 1; i <= R; ++i) for (int j = 1; j <= C; ++j) if(!vis[i][j] && visited[i][j] && s[i][j]!='#') ++cnt; cout << cnt << endl;}
阅读全文
0 0
- CCF 201312-5I’m stuck!
- CCF 201312-5 I’m stuck!
- CCF 201312-5 I’m stuck!
- ccf 201312-5I’m stuck!
- CCF I’m stuck!
- ccf I’m stuck!
- CCF 201312-5 I’m stuck!(BFS)
- CCF 201312-5 I’m stuck! 两次深搜解法
- CCF 习题 201312-5I’m stuck! (BFS)
- ccf—I'm stuck!
- bfs-ccf-I’m stuck!
- CCF-I'm stuck!(BFS)
- ccf "I'm stuck!"(AC)
- 201312-5 I'm stuck!
- I'm stuck! ccf模拟题。
- CCF认证——I’m stuck!
- CCF模拟试题I’m stuck!
- CCF之I’m stuck!(java)
- ccf 201509-4高速公路
- ccf 201503-4网络延时
- ccf 201412-4最优灌溉100
- ccf 201409-4最优配餐
- ccf 201403-4无线网络
- ccf 201312-5I’m stuck!
- springmvc的 自定义转换器(converter)实现方法
- 动态规划 数字三角形 poj1163
- Ubuntu16.04和WindowsXP双系统开机出现grub rescure 解决方案
- Linus实验楼笔记——第4节:Linux 目录结构及文件基本操作
- springboot -dubbo-ssm的最新开源商城
- layout_gravity与gravity的区别,和padding margin的区别
- hdu 2068 错排+组合
- 在win7 32位下使用mongoDB遇到的问题及解决