您的位置:首页 > 财经 > 金融 > 小米应用商店_广西互联网企业_日结app推广联盟_网页设计个人主页模板

小米应用商店_广西互联网企业_日结app推广联盟_网页设计个人主页模板

2024/11/16 4:24:53 来源:https://blog.csdn.net/weixin_74754298/article/details/142576982  浏览:    关键词:小米应用商店_广西互联网企业_日结app推广联盟_网页设计个人主页模板
小米应用商店_广西互联网企业_日结app推广联盟_网页设计个人主页模板

题目链接

https://codeforces.com/problemset/problem/540/C

思路

直接暴力 b f s bfs bfs即可。

从起点开始,向四个方向进行扩展,每到达一个节点就修改一下该节点的状态(如果该节点是完整的冰块),如果能走到终点就是YES,否则就是NO。

代码

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 5e2 + 5;
int n, m;
int r[2], c[2];
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
char s[N][N];
void bfs()
{queue<pair<int, int>>q;q.push({r[0], c[0]});while (q.size()){int x = q.front().first;int y = q.front().second;q.pop();for (int i = 0; i < 4; i++){int tx = x + dx[i];int ty = y + dy[i];if (tx == r[1] && ty == c[1] && s[tx][ty] == 'X'){cout << "YES" << endl;return;}if (s[tx][ty] == '.'){s[tx][ty] = 'X';q.push({tx, ty});}}}cout << "NO" << endl;
}
void solve()
{cin >> n >> m;for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> s[i][j];}}for (int i = 0; i < 2; i++){cin >> r[i] >> c[i];}bfs();
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int test = 1;// cin >> test;for (int i = 1; i <= test; i++){solve();}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com