CCFI’m stuck!
真的stuck了!为什么只有80分 求大佬解答
写的繁琐点了
#include<iostream>
#include<string>
#include<stack>
#include<cstdio>
using namespace std;
char a[200][200];
int visit[200][200];
int visit1[200][200];
int r,c;
int dx[4]={-1,0,0,1};
int dy[4]={0,1,-1,0};
int leftright[2]={-1,1};
int updown[2]={-1,1};
struct Node
{int x,y;char ch;
};
void BFS(int k,int j)
{int xx,yy;visit[k][j]=1;Node t;Node t1;stack<Node> s;t.x=k;t.y=j;t.ch='S';s.push(t);int i;while(!s.empty()){t=s.top();s.pop();if(t.ch=='S'||t.ch=='T'||t.ch=='+'){for(i=0;i<4;i++){xx=t.x+dx[i];yy=t.y+dy[i];if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit[xx][yy]=1;}}else if(t.ch=='-'){for(i=0;i<2;i++){xx=t.x;yy=t.y+leftright[i];if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit[xx][yy]=1;}}else if(t.ch=='|'){for(i=0;i<2;i++){xx=t.x+updown[i];yy=t.y;if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit[xx][yy]=1;}}else if(t.ch=='.'){xx=t.x+1;yy=t.y;if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit[xx][yy]=1;}}
}
void initial()
{int i,j;for(i=0;i<r;i++)for(j=0;j<c;j++)visit1[i][j]=0;
}
void BFS1(int k,int j)
{int xx,yy;visit1[k][j]=1;Node t;Node t1;int i;stack<Node> s;t.x=k;t.y=j;t.ch=a[k][j];s.push(t);while(!s.empty()){t=s.top();s.pop();if(t.ch=='S'||t.ch=='T'||t.ch=='+'){for(i=0;i<4;i++){xx=t.x+dx[i];yy=t.y+dy[i];if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit1[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit1[xx][yy]=1;}}else if(t.ch=='-'){for(i=0;i<2;i++){xx=t.x;yy=t.y+leftright[i];if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit1[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit1[xx][yy]=1;}}else if(t.ch=='|'){for(i=0;i<2;i++){xx=t.x+updown[i];yy=t.y;if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit1[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit1[xx][yy]=1;}}else if(t.ch=='.'){xx=t.x+1;yy=t.y;if(xx<0||xx>=r||yy<0||yy>=c)continue;if(visit1[xx][yy]==1)continue;if(a[xx][yy]=='#')continue;t1.x=xx;t1.y=yy;t1.ch=a[xx][yy];s.push(t1);visit1[xx][yy]=1;}}
}
int main()
{cin>>r>>c;int i,j;int x,y;for(i=0;i<r;i++)scanf("%s",a[i]);for(i=0; i<r; i++)for(j=0; j<c; j++){if(a[i][j]=='S'){BFS(i,j);}else if(a[i][j]=='T'){x=i;y=j;}}if(visit[x][y]==1){int cnt=0;for(i=0;i<r;i++)for(j=0;j<r;j++){if(visit[i][j]==1){initial();BFS1(i,j);if(visit1[x][y]==0)cnt++;}}cout<<cnt<<endl;}else cout << "I'm stuck!" << endl;return 0;
}
CCFI’m stuck!相关推荐
- I'm stuck! ccf模拟题。
ccf模拟题. I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S' ...
- CCF201312-5 I’m stuck!(100分)
试题编号: 201312-5 试题名称: I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', ...
- CSP认证201312-5 I’m stuck![C++题解]:dfs、两次dfs
文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 条件1:可以从起点走到该点.用st1[][]数组表示能否从起点到达该点. 条件2:不可以从该点走到终点. 对于条件2的处理:从终点反 ...
- 遇到“BUG: soft lockup - CPU#0 stuck for 22s”的解决思路
之前开发的抓包模块上线后有客户反馈有丢包问题,这两天在定位这个丢包问题,抓包模块由我和另一名"队友"负责,我负责底层抓包开发,他负责接收处理.在测试丢包问题的时候,他遇到一个板子连 ...
- 解决11g Rac实例状态为Stuck Archiver
解决实例stuck Archiver 其实,这个问题非常好解决,其原因就是因为,数据库开启了归档且归档日志目录满导致的. 还有一种原因,通常,我们使用fast recovery area作为归档日志的 ...
- stick和stuck的区别_怎样区别“stick to”、“stick with”和“stick by”这三个表达?...
我小时候有一次把口香糖粘到头发里去了. Verb form: stick, stuck, stuck Verb form: stick, stuck, stuck 动词形式:stick, stuck( ...
- 201312-5 I’m stuck!
问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思: '#': 任何时候玩家都不能移动到此方格 ...
- 搜索——I’m stuck!(ccf)
题目描述: 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思: '#': 任何时候玩家都不能移动到此方 ...
- CCF201312-5 I’m stuck
问题描述: 试题编号: 201312-5 试题名称: I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#' ...
最新文章
- 函数计算工具链新成员 —— Fun Local 发布啦
- 玩转VIM编辑器-vim附加特性
- SAP CDS entity 中使用 @readonly 进行访问控制
- linux系统原理是什么意思,Linux系统原理之整体概述
- mysql和jfinal的区别_mysql与JFinal的数据关系-阿里云开发者社区
- 【ElasticSearch】如何使用 ElasticSearch 搜索单词的一部分 模糊搜索 正则匹配 前缀匹配
- Python源码深度解析—float空闲对象缓存池
- Acrobat Pro DC 2022 Mac(全能PDF工具)完美兼容m1
- xml笔记(马士兵)
- Android10(Q,API-29)以上版本无法在存储卡目录创建文件夹的问题
- JSP 页面实现一个计算器功能
- 选用计算机教材的理由原因,教材选用及管理规定
- 无线连接网络找不到计算机组,Win10电脑找不到自家Wifi无线网络解决方法 可能是无线信道问题...
- mac搜索不到wifi wtg_Mac连不上WiFi怎么办?Mac连不上无线网络解决办法
- 微信小程序返回上一页各种方法
- 什么是精灵图?如何使用精灵图
- PLL 锁相环原理介绍
- 无法安装冰点还原_电脑无法开机,重装系统太麻烦?不如试试直接备份恢复系统...
- Seurat对象查看data错误
- 单片机音频节奏灯_音乐节奏灯(十个LED显示)