jdoj傳送門
乙個 n行 n列的螺旋矩陣可由如下方法生成:
從矩陣的左上角(第 1行第 1列)出發,初始時向右移動;如果前方是未曾經過的格仔,則繼續前進,否則右轉;重複上述操作直至經過矩陣中所有格仔。根據經過順序,在格仔中依次填入 1, 2, 3, ... , n2,便構成了乙個螺旋矩陣。
下圖是乙個 n = 4時的螺旋矩陣。
現給出矩陣大小 n以及 i和 j,請你求出該矩陣中第 i行第 j列的數是多少。
輸入共一行,包含三個整數 n,i,j,每兩個整數之間用乙個空格隔開,分別表示矩陣大小、待求的數所在的行號和列號。
輸出共一行,包含乙個整數,表示相應矩陣中第 i行第 j列的數。
4 2 3
【資料說明】
對於 50%的資料,1 ≤ n ≤ 30,000;
對於 100%的資料,1 ≤ n ≤ 109,1 ≤ i ≤ n,1 ≤ j ≤ n。
資料加強,n變成10的9。
肯定是o(1)啦!
考慮先把層數處理出來,然後按最外層性質直接給出答案。
**:
#include#define int long long
using namespace std;
int n,x,y,q,ans;
signed main()
螺旋方針(螺旋矩陣)
螺旋方陣 time limit 1000ms memory limit 65536kb problem description 的螺旋方陣當n 5和n 3時分別是如下的形式 請給出乙個程式,對於任意的輸入 0 11 輸出按照上面規律所獲得的 的螺旋方陣。input 輸入第一行為整數 0 10 代表有...
螺旋矩陣 蛇形矩陣
問題描述 給定乙個包含m行n列的m x n矩陣,程式設計按照螺旋順序,輸出該矩陣中的所有元素。輸入有多個矩陣。每個矩陣資料的第1行有兩個整數m和n,接著是乙個mxn矩陣的描述,有m行,每行有n個整數 輸出對每個矩陣資料,按照螺旋順序輸出矩陣陣列的元素。輸入樣例 3 31 2 3 4 5 6 7 8 ...
列印螺旋矩陣
首先,看一下螺旋矩陣的樣子.如下圖 求螺旋陣列的 如下 dev cpp平台 include using namespace std int alloc mat int round 動態二維陣列的分配 void del mat int mat,int round 刪除動態分配的二維陣列 void pr...