acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 资讯
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 题解

    #include <bits/stdc++.h> using namespace std; const int N = 1005; string s = "snuke"; int n, m; int dx[4] = {-1, 1, 0, 0}, dy[4] = {0, 0, -1, 1}; char a[N][N]; bool vis[N][N]; struct node{ int x,y;}; queue<node> q; void bfs(){ if(a[1][1]'s'){ q.push({1,1}); vis[1][1] = 1; } while(!q.empty()){ node cur = q.front(); q.pop(); int x=cur.x, y=cur.y; if(xn && y==m){ cout << "Yes"; return; } char c = a[x][y]; char nc = s[(s.find(c)+1)%5]; for(int i=0;i<4;i++){ int nx = x+dx[i], ny=y+dy[i]; if(nx<1 || nx>n || ny<1 || ny>m) continue; if(a[nx][ny] != nc) continue; if(!vis[nx][ny]){ vis[nx][ny] = 1; q.push({nx,ny}); } } } cout << "No"; } int main() { cin >> n >> m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; } } bfs(); return 0; }

    userId_undefined
    未知
    模拟·模拟练习生倔强青铜冒泡宗师→排序元老
    0阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页