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

poj 1382 The Proper Key

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

poj 1382 The Proper Key

#include <iostream>#include <stdio.h>#include <string.h>using namespace std;bool key[109][109],s[11009][1009],visit[11009][1009];int n,m;int nm,mm;bool in(int y){if(y>=0&&y<mm)return true;return false;}bool door(int x,int y){int i,j;for(i=0; i<n; i++){for(j=0; j<m; j++)if(key[i][j]&&s[i+x][j+y])return false;}return true;}int main(){int cas,i,j,flag;char str[1009];scanf("%d",&cas);while(cas--){memset(key,false,sizeof(key));memset(s,false,sizeof(s));memset(visit,false,sizeof(visit));scanf("%d%d",&n,&m);for(i=0; i<n; i++){scanf("%s",str);for(j=0; j<m; j++){if(str[j]=='#')key[i][j]=true;}}scanf("%d%d",&nm,&mm);nm+=n;for(i=n; i<nm; i++){scanf("%s",str);for(j=0; j<mm; j++){if(str[j]=='#')s[i][j]=true;}}for(i=0; i<mm; i++)visit[0][i]=true;for(i=1; i<nm; i++){flag=false;for(j=0; j<=mm-m; j++){if(!visit[i][j]&&(visit[i-1][j]||(in(j-1)&&visit[i][j-1])||(in(j+1)&&visit[i][j+1]))){if(door(i,j)){flag=true;visit[i][j]=true;if(j>0&&!visit[i][j-1])j-=2;}}}if(!flag)break;}if(i>=nm)printf("The key can fall through.n");elseprintf("The key falls to depth %d.n",i-1);}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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