社区讨论
样例没过求调
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 条回复,欢迎继续交流。
正在加载回复...