5 条题解
-
3
python解法,思维比较简单,代码也简单
的复杂度,能过单纯因为数据点太弱
from typing import List n: int = int(input()) a: List[List[int]] = [[0] * n for _ in range(n)] h: int = 0 l: int = n // 2 for i in range(1, n * n + 1): a[h][l] = i h = (h - 1) % n l = (l - 1) % n if i % n == 0: h = (h + 2) % n l = (l + 1) % n for row in a: print(*row)
-
3
C++ :
#include <iostream> #include <cstdio> #define Maxn 19 using namespace std; int a[Maxn][Maxn]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ a[i][j]=0; } } a[1][n/2+1]=1; for(int i=2;i<=n*n;i++){ int x=0,y=0; for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ if(a[j][k]==i-1){ x=j; y=k; } } } if(x-1>0 && y-1>0){ if(a[x-1][y-1]>0){ a[x+1][y]=i; } if(a[x-1][y-1]==0){ a[x-1][y-1]=i; } } if(x-1==0 && y-1!=0){ if(a[n][y-1]!=0){ a[x+1][y]=i; } if(a[n][y-1]==0){ a[n][y-1]=i; } } if(x-1!=0 && y-1==0){ if(a[x-1][n]!=0){ a[x+1][y]=i; } if(a[x-1][n]==0){ a[x-1][n]=i; } } if(x-1==0 && y-1==0){ if(a[n][n]!=0){ a[x+1][y]=i; } if(a[n][n]==0){ a[n][n]=i; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ printf("%d ",a[i][j]); } printf("\n"); } return 0; }
-
-1
#include
using namespace std; const int Maxn=55; int a[Maxn][Maxn]; int main() { int n; cin>>n; a[1][(n+1)/2]=1; int x=1; int y=(n+1)/2; for(int i=2;i<=n*n;i++) { if(x!=1&&y!=1){ if(a[x-1][y-1]0){x--;y--;a[x][y]=i;continue;} else {x++;a[x][y]=i;continue;} } if(x1){ if(y!=1) { if(a[n][y-1]==0) { x=n; y--; a[x][y]=i; continue; } else { x++; a[x][y]=i; continue; } } else { x++; a[x][y]=i; continue; }
} if(y==1){ if(x!=1) { if(a[x-1][n]==0) { x--; y=n; a[x][y]=i; continue; } else { x++; a[x][y]=i; continue; } } } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<a[i][j]<<" "; } cout<<endl; } return 0;
}
-
-9
可爱学妹(Rei)就是逊啦,只有80分。😄
#define Maxn 19 using namespace std; int a[100][100]; int main() { int n,k1=0,k2=0,k3=0; scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ a[i][j]=0; } } a[1][n/2+1]=1; for(int i=2;i<=n*n;i++){ int x=0,y=0; for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ if(a[j][k]==i-1){ x=j; y=k; } } } if(x-1>0 && y-1>0){ if(a[x-1][y-1]>0){ a[x+1][y]=i; } if(a[x-1][y-1]0){ a[x-1][y-1]=i; } } if(x-10 && y-1!=0){ for(int l=i; l>0; l--){ if(a[n][y-1]==l){k1=k1+1;} } if(k1!=0){ a[x+1][y]=i; } if(a[n][y-1]0){ a[n][y-1]=i; } } if(x-1!=0 && y-10){ for(int l=i; l>0; l--){ if(a[x-1][n]l){k2=k2+1;} } if(k2!=0){ a[x+1][y]=i; } if(a[x-1][n]0){ a[x-1][n]=i; } } if(x-10 && y-10){ for(int l=i; l>0; l--){ if(a[n][n]==l){k3=k3+1;} } if(k3!=0){ a[x+1][y]=i; } if(a[n][n]==0){ a[n][n]=i; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ printf("%d ",a[i][j]); } printf("\n"); } return 0; }
- 1
信息
- ID
- 93
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 195
- 已通过
- 73
- 上传者