社区讨论

样例没过求调

P114101迷宫参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhjd2jhg
此快照首次捕获于
2025/11/04 00:35
4 个月前
此快照最后确认于
2025/11/04 00:35
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,vis[1000][1000],id,cnt;
char a[1000][1000];
const int dx[]={0,0,0,1,-1};
const int dy[]={0,1,-1,0,0};
int dfs(int x,int y,char k)
{
    vis[x][y]=id;
    cnt++;
    if(k=='0') k='1';
    else k='0';
    for(int i=1;i<=4;i++)
        if(x+dx[i]>0&&x+dx[i]<=n&&y+dy[i]>0&&y+dy[i]<=n&&vis[x+dx[i]][y+dy[i]]==0&&a[x+dx[i]][y+dy[i]]==k)
            dfs(x+dx[i],y+dy[i],k);
    return cnt;
}
int main()
{
    cin>>n>>m;
    vector<int> dp(n*n+1);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;i++) cin>>a[i][j];
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin>>x>>y;
        if(vis[x][y]!=0)
            cout<<dp[vis[x][y]]<<'\n';
        else
        {
            cnt=0;
            id++;
            dp[id]=dfs(x,y,a[x][y]);
            cout<<dp[id]<<'\n';
        }
    }
}

回复

1 条回复,欢迎继续交流。

正在加载回复...