POJ 小兔子撿金幣

2021-06-29 13:10:30 字數 1122 閱讀 9513

題目:

總時間限制: 1000ms 記憶體限制: 65536kb

描述在乙個遊戲中,小兔子可以撿金幣。它會一邊走一邊撿掉經過的金幣。當小兔子發現前方沒有金幣的時候,會自動右轉。直到所有金幣都被撿走。現在把乙個nхn的方型區域內,每一格都擺方好了金幣。假設小兔子從左上方第一格開始,往右邊走。圖示如下:

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

撿到的第k個金幣會被標記成k,記為該金幣的序號。則問第i行,第j列的金幣是的序號是什麼? (1≤i≤n, 1≤j≤n)

輸入第一行有乙個整數k和n, n表示方型區域的大小(1≤n≤10000),而k表示輸入座標的組數。(1≤k≤25)

接下來會有k行,每一行有兩上個用空格分隔的整數i和j,表示待求金幣的行數和列數。

輸出一共輸出k行。每一行輸出乙個對應座標下金幣的序號。

樣例輸入

3 41 3

2 23 3

樣例輸出313

15解題思路,和蛇形矩陣一樣去完全計算是會超時的,因為這裡矩陣的大小有10000。所以可以先計算出每一層的起點的數值,然後計算出小兔子所在的層數,從該層的起點走到小兔子的位置就ok了。

#include #define n 10005

#define getmin(a,b) a<=b?a:b

int c[n];

int rr[2][4]=,

};int main()

int a,b;

//puts("ok");

for(int i=0;in/2)

aa=n-aa+1;

if(bb>n/2)

bb=n-bb+1;

int q=getmin(aa,bb);

int start=c[q];

//................................

int x,y;

x=y=q;

int fx=0;

while(startn-q+1 || ny>n-q+1)))

else

}printf("%d\n",start);

}return 0;

}

openjudge 2787 小兔子撿金幣 模擬

題目 模擬 思路 離線操作 記錄每一層最後乙個數 最大 然後模擬 主要步驟 1.初始化 2.求出x,y所在層數 3.蛇形矩陣的模擬 又醜又長的 include include include include using namespace std const int maxn 10001 int n...

小兔子和大兔子

兔子和小兔子一起吃飯。小兔子捧著飯碗,對大兔子說 想你。我不就在你身邊嗎?大兔子說。可我還是想你。小兔子咋吧咋吧嘴,我每吃一口飯都要想你一遍,所以,我的飯又香又甜,哪怕是我最不喜歡的捲心菜。大兔子不說話,只是低著頭繼續吃飯。大兔子和小兔子一起散步。小兔子一蹦一跳,對大兔子說 想你。我不就在你身邊嗎?...

小兔子 的感情人生

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...