MnZn 求助简单 bfs
  • 板块灌水区
  • 楼主2333_qwq
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/12 20:56
  • 上次更新2023/11/2 14:14:29
查看原帖
MnZn 求助简单 bfs
951212
2333_qwq楼主2023/10/12 20:56

P1141,70分TLE求助qwq

#include<bits/stdc++.h>
#define maxn 1234
using namespace std;
struct node{
    int x,y;
};
int n,m,dx[4]={0,0,-1,1},dy[4]={-1,1,0,0},vis[maxn][maxn];
char mp[maxn][maxn];
queue<node>q;
int bfs(int x,int y){
    int ans=1;
    q.push((node){x,y});
    vis[x][y]=1;
    while(!q.empty()){
        node o=q.front();
        q.pop();
        for(int i=0;i<4;i++){
            int nx=o.x+dx[i];
            int ny=o.y+dy[i];
            if(nx<=0||nx>n||ny<=0||ny>n||mp[nx][ny]==mp[o.x][o.y]||vis[nx][ny]==1)continue;
            else{
                q.push((node){nx,ny});
                vis[nx][ny]=1;
                ans++;
            }
        }
    }
    return ans;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)cin>>mp[i][j];
    for(int i=1;i<=m;i++){
        int x,y;
        cin>>x>>y;
        memset(vis,0,sizeof(vis));
        int ans=bfs(x,y);
        cout<<ans<<endl;
    }
    return 0;
}
2023/10/12 20:56
加载中...