2016級演算法第一次練習賽 A 群鴉的盛宴

2022-04-12 08:02:38 字數 758 閱讀 8315

本題乍一眼看過去,你可能會想到使用乙個二維陣列a[51][51]來記錄從i到j的路線數。

你很厲害,這是dp的思想。可是什麼情況才用dp:分解得到子問題往往不是互相獨立的。這也是dp和分治的最大區別之一。這題我從a走到b,和a之前b之後的格仔完全沒有關係啊!

so,冷靜一下再看看,你會發現從1走到3和從2走到4其實是一樣的,然後你會發現答案只與\(b-a\)有關。

舉幾個例子吧,1,2,3,5---臥槽,這是部分斐波那契啊,問題解決!

通過舉例子得到的規律只能幫你解題(這好像已經夠了),有時候還有可能會錯。

我們的問題是求從a到達b的路線數,令n=b-a,即求\(f(n)\)。有兩種方式到達b,那就是從b-1和b-2過來,所以有\(f(n)=f(n-1)+(n-2)\)。

於是有\(f(1)=1,f(2)=2,...f(n)=f(n-1)+(n-2)\)。

另外,程式預處理陣列,此題的查詢複雜度為\(o(1)\)。

考點:斐波那契數列的轉化與應用。

坑點:資料可能會超出int範圍;請不要遞迴,預處理陣列最佳。

//

// created by alvinzh on 2017/9/19.

//#include using namespace std;

long long f[55];

int n,a,b;

int main()

return 0;

}

2016演算法第一次練習賽 A 群鴉的盛宴

時間限制 300ms 記憶體限制 32768kb alvinzh總是比別人慢一拍,比如暑假大家都在追權遊7討論龍母和雪諾大人尷尬相遇的時候,他還在第一季震驚地看著三隻剛出生的小龍。alvinzh的進度很慢,因為他一邊刷著電視劇集,一邊還在看原版 所以現在才看到第五季,雪諾在這頭,龍母在那頭。alvi...

2016級演算法第一次練習賽 C 斐波那契高階

通過讀題就可以發現這不是一般的求斐波那契數列,所以用陣列存下所有的答案是不現實的。題目也明確點明此題可以利用矩陣的計算解題。什麼是快速矩陣冪?快速矩陣冪演算法是一種簡單的具有典型意義的連續為離散演算法,同學們一定要掌握其思想,而不是從網上copy乙份板子就用。時間複雜度 o lgn 考點 簡單的快速...

題解 2018級演算法第一次練習賽 等比數列求和

這裡等比數列求和使用到的知識點包括 分治和快速冪 其中分治的方法和快速冪的方法是從部落格中學習到的 等比數列分治求和 快速冪方法 結合到本題目中可參考完整 在分治求和和快速冪之外取模操作的實現解釋如下 根據描述可知最後的值是很大的,所以需要取餘,但實際上在計算的過程中就需要進行取餘操作了。所以需要對...