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

zoj 2743 Bubble Shooter

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

zoj 2743 Bubble Shooter

#include<iostream>#include<cstring>#include<cstdio>#include<map>#include<queue>using namespace std;#define NMAX 1001string ss[101];int W,H,w,h,ct;int ans,dir[8][2]={{-1,-1},{1,-1},{-1,0},{0,1},{0,-1},{1,0},{-1,1},{1,1}},vis[101][101],vis1[101][101];bool isin(int x,int y){if(x<0||x>=H) return false;if(y>=ss[x].length ()||y<0) return false;return true;}void display(int aa[][101]){for(int i=0;i<H;i++){for(int j=0;j<ss[i].length();j++)cout<<aa[i][j]<<" ";cout<<endl;}}void dfs(int x,int y){ct++;char ch=ss[x][y];int t;if(x%2==0) t=0;else t=2;for(int i=t;i<t+6;i++){int x1=x+dir[i][0],y1=y+dir[i][1];if(isin(x1,y1)){if(!vis[x1][y1]&&ss[x1][y1]==ch){vis[x1][y1]=1;dfs(x1,y1);}}}}void dfs1(int x,int y){ans--;int t;if(x%2==0) t=0;else t=2;for(int i=t;i<6+t;i++){if(dir[i][0]==-1) continue;int x1=x+dir[i][0],y1=y+dir[i][1];if(isin(x1,y1)&&vis[x1][y1]==0){if(!vis1[x1][y1]){vis1[x1][y1]=1;dfs1(x1,y1);}}}}int main(){for(;cin>>H>>W>>h>>w;){memset(vis,0,sizeof(vis));memset(vis1,0,sizeof(vis1));ans=0;ct=0;for(int i=0;i<H;i++){cin>>ss[i];for(int j=0;j<ss[i].length ();j++){if(ss[i][j]!='E')ans++;else{vis[i][j]=1;}}}h--;w--;vis[h][w]=1;dfs(h,w);for(int i=0;i<ss[0].length ();i++){if(!vis[0][i]&&!vis1[0][i]){vis1[0][i]=1;dfs1(0,i);}}if(ct<=2)ans=0;cout<<ans<<endl;}}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377700.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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