COJN 0487 800301红与黑
2015-07-25 14:09
106 查看
800301红与黑 |
难度级别:B; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B |
试题描述 |
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 |
输入 |
包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下 1)‘.’:黑色的瓷砖; 2)‘#’:白色的瓷砖; 3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。 当在一行中读入的是两个零时,表示输入结束。 |
输出 |
对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。 |
输入示例 |
6 9 ....#. .....# ...... ...... ...... ...... ...... #@...# .#..#. 0 0 |
输出示例 |
45 |
其他说明 |
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<queue> #include<cstring> #define PAU putchar(' ') #define ENT putchar('\n') using namespace std; const int maxn=20+5; char A[maxn][maxn];bool vis[maxn][maxn]; int mx[]={0,0,-1,1},my[]={-1,1,0,0}; inline int read(){ int x=0,sig=1;char ch=getchar(); for(;!isdigit(ch);ch=getchar())if(ch=='-')sig=0; for(;isdigit(ch);ch=getchar())x=10*x+ch-'0'; return sig?x:-x; } inline void write(int x){ if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x; int len=0,buf[15];while(x)buf[len++]=x%10,x/=10; for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return; } int n,m,sx,sy,ans; void find(){ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(A[i][j]=='@'){A[i][j]='.';sx=i;sy=j;return;} } }return; } void dfs(int x,int y){ if(x<0||x>=n||y<0||y>=m||vis[x][y]||A[x][y]!='.')return;ans++;vis[x][y]=true; for(int d=0;d<4;d++)dfs(x+mx[d],y+my[d]);return; } void init(){ while(scanf("%d%d",&m,&n)==2){ if(!m&&!n)return; memset(vis,false,sizeof(vis));ans=0; for(int i=0;i<n;i++)scanf("%s",A+i); find();dfs(sx,sy);write(ans);ENT; } return; } void work(){ return; } void print(){ return; } int main(){init();work();print();return 0;}
相关文章推荐
- BindingFlags 枚举
- lua技巧分享之保护执行
- sgu 104 Little shop of flowers
- 约瑟夫问题
- Java程序dos中编译运行
- 手机游戏产品经理(七)创建本地化产品的意见
- python基础教程总结13——网络编程,
- 从SAP的核心优势看SAP四大战略成功的可能
- C++ 的那些坑 (Day 0)
- Online Judge System For SzNOI 题库 语法百题 c++ d040
- BZOJ 1798 [Ahoi2009]Seq 维护序列seq 线段树
- 修改软件源为163的镜像
- 二分图判断(模板)
- 《慕客网:IOS动画案例之会跳动的登入界面(上)》学习笔记 -Sketch的使用
- Online Judge System For SzNOI 题库 语法百题 c++ d039
- Anroid5.0下webview显示本地图片
- mybatis Result Maps对结果分组2--多层一对多
- iOS应用崩溃日志分析
- Xcode 6下制作通用iOS Framework的脚本
- 贪心算法之区间调度问题