hdu1176 免費餡餅

2021-06-17 18:53:26 字數 646 閱讀 2722

簡單dp

題目要求:求dp[0][5]到dp[t]的最大值

類似數塔 只不過1~9號位有三個方向可以選 0和10只有兩個

可將所有的時間段和餡餅看成是乙個矩陣,時間就是行數,掉餡餅的就是列數,則就是數字三角形問題,從最底層找一條路徑,使得路徑上的和最大。

dp[i][j] 表示 i 時刻 j位置的最大值

開始搞不懂為什麼要for t->0 for 1->10 然後就得到dp[0][5]

首先要從最後一秒往前推 就像數塔從最下層開始往上算

然後算每乙個位置能得到的最大值 因為你也不知道這些位置的下乙個位置是不是終點 所以每乙個位置從0->t都要算

#include#include#include#include#include#includeusing namespace std;

int dp[100005][15],n,t;

int max3(int a,int b,int c)

int main()

for(i=t;i>0;i--)//從最後一秒開始往前推

else if(j==10)

else}}

printf("%d\n",dp[0][5]);

}return 0;

}

hdu1176 免費餡餅

解題思路 動態規劃 可以看成倒的塔,這個地方轉換過來就快了,狀態轉移方程 d i j max d i 1 j 1 d i 1 j d i 1 j 1 最後答案是d 0 6 ac include include include include include using namespace std d...

hdu1176 免費餡餅

problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於...

HDU 1176 免費餡餅

problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於...