我油来问水题了(已完结)

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

6 个赞

image
这么填就好了。

7 个赞

我知道啊,代码写不出来

6 个赞

数组下标推了半天

6 个赞

模拟就好了啊。n 又不大。

7 个赞

代码写不出来

数组下标推了半天

6 个赞

从一开始填,你到边界直接转向,有什么难的。

7 个赞

对呀,我试过了dfs :slightly_smiling_face:

6 个赞

模拟,又不要 DFS。

7 个赞

大佬,膜(怎么模?)

6 个赞

我也试了,逝了

6 个赞

我也想知道答案,我做得太简陋了

6 个赞

每一次while
while向右
while向下
whle向左
while向上

一共n^2次

4 个赞

对了给个解决方案

4 个赞

要不你看看前面的帖再说?

4 个赞

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++;
}输出

5 个赞
错了
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++;
}输出 
5 个赞

死循环啊

4 个赞

now先++

5 个赞

反一下

4 个赞