栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2357 Labyrinth

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2357 Labyrinth

#include<iostream>#include<cstdio>#include<queue>#include <cstring>using namespace std;int N,a[35][35];char A[35][35];typedef struct stq{int x,y;}stq;queue <stq> Q;int m[4][2]={{0,1},{0,-1},{1,0},{-1,0}};void BFS(int x, int y);int main(){int i,j,c;while(scanf("%d",&N)!=EOF){for(i=0;i<=N+1;i++) for(j=0;j<=N+1;j++) a[i][j]=0;for(i=1;i<=N;i++) scanf("%s",A[i]+1);BFS(1,1);BFS(N,N);c=0; for(i=1;i<=N;i++) for(j=1;j<=N;j++) { if(a[i][j]==1) { if(a[i-1][j]==0)c++; if(a[i+1][j]==0)c++; if(a[i][j-1]==0)c++; if(a[i][j+1]==0)c++; } }printf("%dn",(c-4)*9); }return 0;}void BFS(int aa,int b){int i,j; stq sq,q;sq.x=aa; sq.y=b;a[sq.x][sq.y]=1;Q.push(sq);while(!Q.empty()){q=Q.front();Q.pop();for(i=0;i<4;i++){sq.x= q.x+m[i][0];sq.y=q.y+m[i][1]; if(sq.x>N||sq.x<1|| sq.y>N||sq.y<1 ||A[sq.x][sq.y]=='#'||a[sq.x][sq.y]==1) continue; a[sq.x][sq.y]=1; Q.push(sq);}}}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375550.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号