ACM第三次練習 1007

2021-07-12 04:16:05 字數 623 閱讀 6030

題意:天上掉餡餅,gameboy每秒種只有在移動不超過一公尺的範圍內接住墜落的餡餅。假設在接下來的一段時間裡,餡餅都掉落在0-10這11個位置。開始時gameboy站在5這個位置,因此在第一秒,他只能接到4,5,6這三個位置中其中乙個位置上的餡餅。問gameboy最多可能接到多少個餡餅?(假設他的揹包可以容納無窮多個餡餅)

思路:跟之前做過的數塔題的思路有些類似

,不過這是矩陣,可以這樣想:建乙個很大的矩陣a,那麼a[i][j]表示第i秒第j位置有多少個餡餅,那麼我把所有餡餅都填入表(矩陣中),這樣我只要從底往上走,走到最上面一層,找到所走過的位置中餡餅之數最大的那個就是我們所求結果,這完全和數塔一樣的思維。

既然用到了動態規劃,那麼就必須思考動態規劃的3個要素,其中子結構之間存在關係,並且那個遞推關係式是很重要的,這是我們在用動態規劃解決問題時候必須先思考的。

感想:感覺這題跟前面幾個差很遠,好難~

**:#include

#include

using namespace std;

int maxi(int a,int b,int c)

int max(int a,int b)

int c[100001][11];

int main()

cout<

ACM第三次練習 1001

題意 給出序列a 1 a 2 a 3 a n 計算子串行的最大總和。思路 最大子串行是要找出由數組成的一維陣列中和最大的連續子串行。方法是 只要前i項和還沒有小於0子串行就一直往後擴充套件,否則丟棄之前的子串行開始新的子串行,同時記錄各個子串行的和,最後取他們中的最大值。感想 第一道動態規劃題,感覺...

ACM第三次練習 1002

題意 求兩個字串的最長公共子串行。思路 動態的方程在第乙個元素的相等的時,dp 0 0 dp 1 1 1,天哪,這肯定就會出錯了。在處理時可以選擇字元的讀取從第乙個位置開始,或者把 i 號字元的狀態儲存到i 1號位置去,這樣就從1號開始處理了,判定是就是 s1 i 1 s1 j 1 感想 弄了很久,...

ACM第三次練習 1010

題意 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?思路 搜尋題的感覺,前面幾個數為1,1,2,3,第五個可以這樣考慮 有些走法是和到第四個一樣的,只是最後加了一步,這樣f 5 f 4 x,x表示其他的走法,到第五級時不是走兩步就是一步,一步剛才已經考慮...