#include<bits/stdc++.h>
using namespace std;
int n,m,p1,p2,cnt=0;
int ma[105][105],vs[1005][1005];
struct node{
int x,y;
};
node dxy[4]={{1,0},{0,1},{-1,0},{0,-1}};
bool judge(int x,int y){
if(x>=1&&x<=n&&y>=1&&y<=m&&vs[x][y]==0&&ma[x][y]<=ma[p1][p2]){
return true;
}else{
return false;
}
}
void bfs(){
queue<node>que;
node t1;
t1.x=p1;
t1.y=p2;
que.push(t1);
vs[t1.x][t1.y]=1;
cnt++;
while(!que.empty()){
node t2=que.front();
que.pop();
for(int i=0;i<4;i++){
node t3;
t3.x=t2.x+dxy[i].x;
t3.y=t2.y+dxy[i].y;
if(judge(t3.x,t3.y)){
que.push(t3);
vs[t3.x][t3.y]=1;
cnt++;
}
}
}
}
int main(){
cin>>n>>m>>p1>>p2;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>ma[i][j];
}
}
bfs();
cout<<cnt;
return 0;
}
D. 泉水 题目描述Leyni是一个地址调查员,有一天在他调查的地方突然出现个泉眼。由于当地的地势不均匀,有高有低,他觉得如果这个泉眼不断的向外溶出水来,这意味着这里在不久的将来将会一个小湖。水往低
最新推荐文章于 2024-10-09 10:07:13 发布