6. 回型矩阵
XJOI - 题目ID:1170100分
最新提交:0 分
历史最高:0 分
时间限制: 1000ms
空间限制: 65536kB
题目描述
给你一个整数n,按要求输出n∗n的回型矩阵
输入格式
输入一行,包含一个整数n
输出格式
输出n行,每行包含n个正整数.
样例
Input 1
4
Output 1
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
数据范围
1<=n<=19
XJOI - 题目ID:1170100分
最新提交:0 分
历史最高:0 分
时间限制: 1000ms
空间限制: 65536kB
给你一个整数n,按要求输出n∗n的回型矩阵
输入一行,包含一个整数n
输出n行,每行包含n个正整数.
4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
1<=n<=19

这么填就好了。
我知道啊,代码写不出来
数组下标推了半天
模拟就好了啊。n 又不大。
从一开始填,你到边界直接转向,有什么难的。
对呀,我试过了dfs ![]()
模拟,又不要 DFS。
大佬,膜(怎么模?)
我也试了,逝了
我也想知道答案,我做得太简陋了
每一次while
while向右
while向下
whle向左
while向上
一共n^2次
对了给个解决方案
要不你看看前面的帖再说?
int now=1,x=1,y=1;
a[y]=1;
while(now<=n*n){
while(x<n&&a[x+1][y]==0)a[++x][y]=now,now++;
while(y<n&&a[y+1]==0)a[++y]=now,now++;
while(x>1&&a[x-1][y]==0)a[–x][y]=now,now++;
while(y>1&&a[y-1]==0)a[–y]=now,now++;
}输出
错了
int now=1,x=1,y=1;
a[x][y]=1;
while(now<=n*n){
while(x<n&&a[x+1][y]==0)a[++x][y]=now,now++;
while(y<n&&a[x][y+1]==0)a[x][++y]=now,now++;
while(x>1&&a[x-1][y]==0)a[--x][y]=now,now++;
while(y>1&&a[x][y-1]==0)a[x][--y]=now,now++;
}输出
死循环啊
now先++
反一下