首页 > 代码库 > 第一次的迷宫为队列版,这个为搜索版x(自己写的嘿嘿)
第一次的迷宫为队列版,这个为搜索版x(自己写的嘿嘿)
错误原因:第一次提交的时候把Yes跟No输错了都输为大写:……
代码来啦!
#include<cstdio> #include<iostream> using namespace std; int m,n,tot; int jz[2020][2020]; bool j[2020][2020];//初始为0 void ym(int x,int y) { j[x][y]=1; if(!j[x+1][y]&&jz[x+1][y]<=jz[x][y]&&x+1<=n) { ym(x+1,y); tot--; } if(!j[x][y+1]&&jz[x][y+1]<=jz[x][y]&&y+1<=m) { ym(x,y+1); tot--; } if(!j[x-1][y]&&jz[x-1][y]<=jz[x][y]&&x-1>0) { ym(x-1,y); tot--; } if(!j[x][y-1]&&jz[x][y-1]<=jz[x][y]&&y-1>0) { ym(x,y-1); tot--; } } void mm(int x1,int y1) { if(j[x1][y1]) printf("Yes\n"); else printf("No\n"); } int main() { scanf("%d%d",&n,&m); tot=n*m-1; for(int i=1; i<=n; ++i) { for(int j=1; j<=m; ++j) { scanf("%d",&jz[i][j]); } } int sx,sy; scanf("%d%d",&sx,&sy); j[sx][sy]=1;//进行标记,已经被淹没 ym(sx,sy); printf("%d\n",tot); int q,xw,yw; scanf("%d",&q); for(int k=1; k<=q; ++k) { scanf("%d%d",&xw,&yw); mm(xw,yw); } return 0; }
第一次的迷宫为队列版,这个为搜索版x(自己写的嘿嘿)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。