codevs 2919 选择题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 2919 选择题相关的知识,希望对你有一定的参考价值。
时间限制: 1 s
空间限制: 16000 KB
题目等级 : 黄金 Gold
题目描述 Description
某同学考试,在N*M的答题卡上写了A,B,C,D四种答案。
他做完了,又不能交,一看表,离打铃还有N久。
他开始玩一个游戏:选一个格子X,Y,从这个格子出发向4个方向找相同的选项,找到的再如此。
求形成的图形的面积。(一个选项占一个单位面积)
输入描述 Input Description
N M X Y
答题卡(矩阵)
输出描述 Output Description
面积
样例输入 Sample Input
3 3 1 2
A C B
C C C
D C A
样例输出 Sample Output
5
数据范围及提示 Data Size & Hint
N,M<=15.
对于33%数据,只有A。
经典bfs
#include <iostream> #include <cstdio> using namespace std; int fx[5]={0,0,-1,1},fy[5]={1,-1,0,0}; int Answer,n,m,x,y,i,j; char atlas[16][16],what; bool vis[16][16]; void ss(int u,int v) { Answer++; vis[u][v]=1; for(int i=0;i<4;++i) { int mx=u+fx[i],my=v+fy[i]; if(mx>0&&mx<=n&&my>0&&my<=m&&atlas[mx][my]==atlas[x][y]&&!vis[mx][my]) ss(mx,my); } } int main() { scanf("%d%d%d%d",&n,&m,&x,&y); for(i=1;i<=n;++i) for(j=1;j<=m;++j) cin>>atlas[i][j]; ss(x,y); printf("%d",Answer); return 0; }
以上是关于codevs 2919 选择题的主要内容,如果未能解决你的问题,请参考以下文章