Y • 1个月前
、、、 递归 、、、
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;
} 、、、非递归、、、
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;
}
评论:
请先登录,才能进行评论