題目鏈結
直接看題
一看就很數學
我們不妨來畫圖
畫出幾個矩陣,找他們的關係
然後發現
當i==1時,對應的值就是j所對應的值;
當i==n時,所對應的值就是3*n-2-j+1;
當j==1時,所對應的值是4*n-2-i;
當j==n時,對應的值是n+x-1。
然後對於這個很多很多層的矩陣,我們可以對其進行剝層,每剝開一層,n-2,所要求的點相對於新矩陣的行列座標分別-1,同時值+4*n-4;
這樣就是乙個遞迴
1 #include2至於jyyakioi,那已經是事實了qwqusing
namespace
std;
3 inline int
read()
413 c=getchar();14}
15while(c>='
0'&&c<='9'
)1620return x*w;21}
22 inline void
out(int
n)23
29if(n>=10)30
33 putchar(n%10+'0'
);34
}35 inline int jyyakioi(int a,int b,int
c)36
41if(c==a)
4245
if(b==a)
4649
if(c==1)50
53return jyyakioi(a-2,b-1,c-1)+4*(a-1
);54
} 55
intmain()
56
洛谷 P2239 螺旋矩陣 數學
乙個nn行nn列的螺旋矩陣可由如下方法生成 從矩陣的左上角 第11行第11列 出發,初始時向右移動 如果前方是未曾經過的格仔,則繼續前進,否則右轉 重複上述操作直至經過矩陣中所有格仔。根據經過順序,在格仔中依次填入1,2,3,n1,2,3,n,便構成了乙個螺旋矩陣。2 下圖是乙個n 4n 4 時的螺...
洛谷 2239 螺旋矩陣
翻了翻題解,發現我的這個方法好像並沒有被寫過,也許是這個方法太菜了,但是還是可以ac的。首先呢 1 n 30,000.暴力就別想了,最多50分 於是就開始在暴力的基礎上找方法,無意發現,如果我們開始先將矩陣一層一層的剝開,直到目標位置在新矩陣的最外層是停止。此時最壞情況,目標點在30000x3000...
Luogu P2239 螺旋矩陣
乙個n行n列的螺旋矩陣可由如下方法生成 從矩陣的左上角 第1行第1列 出發,初始時向右移動 如果前方是未曾經過的格仔,則繼續前進,否則右轉 重複上述操作直至經過矩陣中所有格仔。根據經過順序,在格仔中依次填入1,2,3,n,便構成了乙個螺旋矩陣。現給出矩陣大小n以及i和j,請你求出該矩陣中第i行第j列...