已ac

Y  •  1个月前


、、、 递归 、、、

include

using namespace std; const int N = 1010; int a[N][N]; int n,m,p,x,y;

void outer(){

for(int i=1;i<=n;i++){
	for(int j=1;j<=m;j++){
		cout << a[i][j]<<" ";
		
	}
	cout << endl;
}

}

void dfs(int x,int y,int k){

if( k > n*m) return;
a[x][y] = k;
//outer();
//cout << endl;

int nx = x - 1;
int ny = y + 1;
if(nx==0) nx = n;
if(ny==m+1) ny = 1;
if(a[nx][ny]) {
    nx = x+1;
    ny = y;
    if(nx == n+1) nx = 1;
}
dfs(nx,ny,k+1);
return ;

}

int main(){

cin >>n >> m>> p >>x>>y;
dfs(x,y,1);
while(p--){
	cin >> x >> y;
    cout << a[x][y] << endl;
}
return 0;

} 、、、非递归、、、

include

using namespace std; const int N = 1010; int a[N][N]; int n,m,p,x,y;

int main(){

cin >> n >> m >> p >> x >> y;
int all = n * m;
for(int i = 1;i<=all;i++){
    int tx = x,ty = y;
	a[x][y] = i;
    x--;
    if(x == 0) x = n;
    y++;
    if(y == m+1) y = 1;
    if(a[x][y]){
    	x = tx;
        y = ty;
        x++;
        if(x ==  n+1) x = 1;
    }
    
}
while(p--){
	cin >> x >> y;
    cout << a[x][y] <<endl;
}
return 0;

}


评论:

请先登录,才能进行评论