3WA??
  • 板块P1141 01迷宫
  • 楼主liyixuan5
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/10/18 09:21
  • 上次更新2023/11/4 03:25:20
查看原帖
3WA??
443933
liyixuan5楼主2021/10/18 09:21
#include<bits/stdc++.h>
using namespace std;
#define I(e) for(long long int i=0;i<e;i++)
#define J(w) for(long long int j=0;j<w;j++)
#define K(w) for(long long int k=0;k<w;k++)
long long int a[1005][1005];
long long int n,m;
long long int f[4]={-1,0,0,1};
long long int s[4]={0,-1,1,0};
long long int b[1005];
long long int c[1005][1005];
long long int dp(long long int x,long long int y,long long int ct,long long int num){
	if(a[x][y]==num){
		return 0;
	}
	else if(a[x][y]!=-1&&a[x][y]<num){
		return b[a[x][y]];
	}
	a[x][y]=num;
	I(4){
		if(0<=x+f[i]&&x+f[i]<n){
			if(0<=y+s[i]&&y+s[i]<n&&c[x+f[i]][y+s[i]]==!c[x][y]){
				ct+=dp(x+f[i],y+s[i],1,num);
			}	
		}
	}
	b[num]=ct;
	return ct;
}
int main(){
	memset(a,-1,sizeof(a));
	cin>>n>>m;
	I(n){
		J(n){
			scanf("%1d",&c[i][j]);
		}
	}
	I(m){
		long long int r,t;
		cin>>r>>t;
		cout<<dp(r-1,t-1,1,i)<<'\n';
	}
	return 0;
}
2021/10/18 09:21
加载中...