先不考虑超时的情况
查看原帖
先不考虑超时的情况
372653
西方不buy菌楼主2020/11/24 17:57

哪错了awa

#include<bits/stdc++.h>
using namespace std;
bool vis[1001][1001];
char Map[1001][1001];
int dp[1001][1001];
int dx[9]={0,1,0,-1},dy[9]={1,0,-1,0}; 
int n,m,ans=0;
void dfs(int x,int y,char op)
{
	ans++;
	for(int i=0;i<4;i++)
	{
		int tx=x+dx[i],ty=y+dy[i];
		if(tx>=0&&tx<n&&ty<n&&ty>=0&&!vis[tx][ty]&&op!=Map[tx][ty])
		{
			vis[tx][ty]=true;
			dfs(tx,ty,Map[tx][ty]);
			vis[tx][ty]=false;
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			cin>>Map[i][j];
		}
	}
	int x,y;
	for(int i=0;i<m;i++)
	{
		memset(vis,0,sizeof(vis));
		ans=0;
		cin>>x>>y;
		x-=1,y-=1;
		dfs(x,y,Map[x][y]);
		cout<<ans<<"\n";
	}
}
2020/11/24 17:57
加载中...