10 条题解
-
0
找固定移动模式,模拟即可
#include <bits/stdc++.h> #define int long long using namespace std; const int N = 110; int n,m,a[N][N],b[N][N]; void solve(){ cin>>m>>n; int x=0,y=n-1,cnt=1,d=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); b[0][n-1] = 1; a[0][n-1] = 1; while(cnt<n*m){ while(x<m-1-d&&!a[x+1][y]){ b[++x][y] = ++cnt; a[x][y] = 1; }while(y!=d&&!a[x][y-1]){ b[x][--y] = ++cnt; a[x][y] = 1; }while(x!=d&&!a[x-1][y]){ b[--x][y] = ++cnt; a[x][y] = 1; } while(y<n-1&&!a[x][y+1]){ b[x][++y] = ++cnt; a[x][y] = 1; } d+=1; } for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ printf("%5lld",b[i][j]); }printf("\n"); } } signed main() { ios::sync_with_stdio(0); cin.tie(0); int t=1; while(t--)solve(); return 0; }
信息
- ID
- 78
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 1257
- 已通过
- 327
- 上传者