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

poj 2157 Maze

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

poj 2157 Maze

#include<cstdio>#include<cstring>#include<algorithm>#include<cctype>using namespace std;int r,c;char map[30][30];int num[30],po[30][2];bool vis[30][30];bool in(int x,int y){    return (x>=1&&x<=r&&y>=1&&y<=c&&map[x][y]!='X');}bool dfs(int x,int y){    if(map[x][y]=='G')        return true;    vis[x][y]=true;    if(isupper(map[x][y])&&num[map[x][y]-'A']!=0)        return false;    if(islower(map[x][y]))        num[map[x][y]-'a']--,map[x][y]='.';    bool flag=false;    if(in(x+1,y)&&!vis[x+1][y])        flag=flag||dfs(x+1,y);    if(in(x-1,y)&&!vis[x-1][y])        flag=flag||dfs(x-1,y);    if(in(x,y+1)&&!vis[x][y+1])        flag=flag||dfs(x,y+1);    if(in(x,y-1)&&!vis[x][y-1])        flag=flag||dfs(x,y-1);    return flag;}int main(){    while(scanf("%d%d",&r,&c),(r||c))    {        memset(num,-1,sizeof(num));        memset(vis,false,sizeof(vis));        int x,y;        for(int i=1;i<=r;i++)        { scanf("%s",map[i]+1); for(int j=1;j<=c;j++) {     char ch=map[i][j];     if(isalpha(ch))     {         if(islower(ch))         {  if(num[ch-'a']==-1)      num[ch-'a']=1;  else      num[ch-'a']++;         }         else if(ch<='E')         {  po[ch-'A'][0]=i;  po[ch-'A'][1]=j;  if(num[ch-'A']==-1)      num[ch-'A']=0;         }         else if(ch=='S')         {  x=i;y=j;  map[i][j]='.';         }     } }        }        if(dfs(x,y))        { printf("YESn"); continue;        }        while(1)        { bool flag=false; for(int i=0;i<5;i++) {     if(num[i]==0)     {         x=po[i][0];         y=po[i][1];         if(!vis[x][y])  continue;         num[i]--;         flag=true;         map[x][y]='.';         break;     } } if(!flag) {     printf("NOn");     break; } else if(dfs(x,y)) {     printf("YESn");     break; }        }    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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