一組簡單一點的題目 六 B 小兔的棋盤

2021-09-14 03:00:04 字數 990 閱讀 4164

題目:b - 小兔的棋盤

小兔的叔叔從外面旅遊回來給她帶來了乙個禮物,小兔高興地跑回自己的房間,拆開一看是乙個棋盤,小兔有所失望。不過沒過幾天發現了棋盤的好玩之處。從起點(0,0)走到終點(n,n)的最短路徑數是c(2n,n),現在小兔又想如果不穿越對角線(但可接觸對角線上的格點),這樣的路徑數有多少?小兔想了很長時間都沒想出來,現在想請你幫助小兔解決這個問題,對於你來說應該不難吧!

input

每次輸入乙個數n(1<=n<=35),當n等於-1時結束輸入。

output

對於每個輸入資料輸出路徑數,具體格式看sample。

sample input13

12-1

sample output

1 1 2

2 3 10

3 12 416024

思路:這個題要特別注意一下裡面有個要求即不能越過對角線!,所以可以分開處理,即將其分成上半邊和下半邊。只需要求出乙個半邊,之後乘2即可。

這個題一開始我想進行組合來著,但是後來發現因為不能越過對角線,所以不可以進行組合,所以就用類似斐波那契數列進行,即每次到乙個格仔的的方式的數量由走到下乙個格仔和走到左乙個格仔的方式的數量之和。而對角線因為特殊所以要單獨處理,即走到對角線的方式的數量僅有下邊乙個格仔決定,每次都要算到(n,n),即每次迴圈儲存的時候都要到(i,i);

新技巧:這個類斐波那契數列存數的方式早就接觸到,但這個是一種可以用的情況,即行走的步數的問題,即從這裡走怎麼走到另乙個問題,所以從每一步的種類數量由前一步還是前幾步決定。

所以,總得來說就是,這種走路方式和數量的問題都可以嘗試用類斐波那契數列處理,前提必須要有前後關係才行!!

**:

#include#includeusing namespace std;

long long a[37][37];

int main()

return 0;

}

一組簡單一點的題目 六 T 整數解

題目 t 整數解 有二個整數,它們加起來等於某個整數,乘起來又等於另乙個整數,它們到底是真還是假,也就是這種整數到底存不存在,實在有點吃不準,你能快速回答嗎?看來只能通過程式設計。例如 x y 9,x y 15 找不到這樣的整數x和y 1 4 5,1 4 4,所以,加起來等於5,乘起來等於4的二個整...

M Sort it 一組簡單一點的題目 三

大意 就是將輸入的數列進行公升序排列的過程中,相鄰的兩個兩兩交換的次數最少為多少 思路 這個題不能單純的用什麼冒泡啥的,顯然不行,而是求出其對應的逆序數的對數,求出之後,有多少對就是進行移動的最少的次數。這是因為對於逆序數的時候你可以先交換相鄰的逆序數,最後一定能讓不相鄰的逆序數變成相鄰,然後交換,...

一組簡單一點的題目 四 K 不容易系列之一

題目 k 不容易系列之一 大家常常感慨,要做好一件事情真的不容易,確實,失敗比成功容易多了!做好 一件 事情尚且不易,若想永遠成功而總從不失敗,那更是難上加難了,就像花錢總是比掙錢容易的道理一樣。話雖這樣說,我還是要告訴大家,要想失敗到一定程度也是不容易的。比如,我高中的時候,就有乙個神奇的女生,在...