矩陣b不止b[105][105]1050 螺旋矩陣(25)(25 分)
本題要求將給定的n個正整數按非遞增的順序,填入「螺旋矩陣」。所謂「螺旋矩陣」,是指從左上角第1個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件:m*n等於n;m>=n;且m-n取所有可能值中的最小值。
輸入格式:
輸入在第1行中給出乙個正整數n,第2行給出n個待填充的正整數。所有數字不超過10^4^,相鄰數字以空格分隔。
輸出格式:
輸出螺旋矩陣。每行n個數字,共m行。相鄰數字以1個空格分隔,行末不得有多餘空格。
輸入樣例:
1237
7620
9876
4253
9560
8158
93輸出樣例:
9895
9342
3781
5320
7658
6076
但是b[10005][10005]最後乙個測試點會記憶體超限
由於m>=n,m 邊界為10000,n 邊界為100;所以取b[10005][105]
做法:將數a填入矩陣b
#include
#include
#include
#include
using
namespace
std;
int n,m,n,a[10005],b[10005][105];//注意b邊界並不是sqrt(100005);
int main()
for(int i=0;iscanf("%d",&a[i]);
}sort(a,a+n);
int x=0,y=0,dir=0,t=0;
for(int i=n-1;i>=0;i--)
}else
if(dir==1)
}else
if(dir==2)
}else
if(dir==3)}}
for(int i=0;ifor(int j=0;j1;j++)
printf("%d\n",b[i][n-1]);
}return
0;}
PAT乙 1050 螺旋矩陣 25
題目描述 本題要求將給定的n個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第1個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為m行n列,滿足條件 m n等於n m n 且m n取所有可能值中的最小值。程式 include include include using names...
PAT乙級1050 螺旋矩陣 25分
本題要求將給定的 n 個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第 1 個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為 m 行 n 列,滿足條件 m n 等於 n m n 且 m n 取所有可能值中的最小值。輸入格式 輸入在第 1 行中給出乙個正整數 n,第 2 行給出...
PAT乙級 1050 螺旋矩陣 25分
本題要求將給定的 n 個正整數按非遞增的順序,填入 螺旋矩陣 所謂 螺旋矩陣 是指從左上角第 1 個格仔開始,按順時針螺旋方向填充。要求矩陣的規模為 m 行 n 列,滿足條件 m n 等於 n m n 且 m n 取所有可能值中的最小值。輸入在第 1 行中給出乙個正整數 n,第 2 行給出 n 個待...