Apple Catching (dp 動態規劃)

2021-08-18 03:58:50 字數 858 閱讀 2829

input

* line 1: two space separated integers: t and w 

output

sample input

7 221

1221

1

sample output
6

題意:有兩個蘋果樹,每一分鐘都會從有其中一顆樹掉落乙個蘋果,輸出 n,m,n為n分鐘,m為最多在兩棵樹之間有 m次跑動,下面輸出每分鐘是那顆蘋果樹上的蘋果掉落的,要輸出,在兩顆蘋果樹之間 不超過m次跑動,最多能獲得多少個蘋果;

思路:本來想著記憶化搜尋咧,本章練習動態規劃,找狀態轉移方程,就嘗試找狀態轉移方程;

dp陣列

dp[x][y][i] 表示在x次下落時,剩餘y次走動,此時在i顆樹下時能獲得的最大蘋果數;其實這道題有固定終點和起點;

**:

#include#include#includeusing namespace std;

#define max 1010

int dp[max][33][3]; //dp[x][y][i] 當處於 x次下落時,剩餘y次跑動,此時在 i 樹下的最大獲取蘋果數;

int book[max];

int n,m;

int main()

}} int ma = max(dp[1][m-1][2],dp[1][m][1]); // 終止條件有兩個;乙個都不能忽略;

//printf("%d\n",dp[1][m][1]);

//printf("%d\n",dp[1][m-1][2]);

printf("%d\n",ma);

} return 0;

}

Prince and Princess 動態規劃

題目大意 求兩個序列的最長子序列 include include include includeusing namespace std int n,p,q const int maxn 250 250 int num1 maxn int hash maxn stack maxn int main i...

Colored Rectangles 動態規劃

題意 三種木棍,分別有 r對 g對 b對兩種不同木棍對可以弄移乙個矩形,要求矩形面積總和最大 思路 看題面,這種幾個變數互相影響並且最終目標固定的題目感覺就要用dp,而且資料比較小應該就是能用三維dp,雖然我比賽時沒做出來,但是我想的挺明白的,狀態轉移就是dp i j k max dp i 1 j ...

hdu1513 Palindrome 動態規劃

求讓乙個字串變為回文串所需最少插入字元數 定義狀態dp i j 表示從左到右i個字元,從右到左j個字元,要讓他們回文需要插入多少字元 顯然,a i a j 時,dp i j d p i 1 j 1 a i a j 時,就需要插入乙個字元,因此dp i j m in d p i 1 j dp i j ...