hdu 1176 免費的餡餅

2021-06-14 14:45:49 字數 411 閱讀 6153

//

此題和解數塔問題差不多,只不過是把時間倒過來當作是高度的;

定義a[t][x]為事件t時刻在x座標時能接到的做多的餡餅數,然後輸入資料時,對每組資料的x和t令a[t][x]++;

輸入資料時注意記下時間的最大之,因為後面從後往前掃瞄,為了節省時間,可以從tmax開始;

狀態轉移方程為a[i][j]+=max(a[i+1][j],a[i+1][j+1],a[i+1][j-1]);注意j等於0的情況;

由於出開始時t=0;x=5;所以a[0][5]即為結果;

#include #include using namespace std;

int a[100001][14];

int max(int x,int y)

int main()

} cout<

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 免費餡餅

簡單dp 題目要求 求dp 0 5 到dp t 的最大值 類似數塔 只不過1 9號位有三個方向可以選 0和10只有兩個 可將所有的時間段和餡餅看成是乙個矩陣,時間就是行數,掉餡餅的就是列數,則就是數字三角形問題,從最底層找一條路徑,使得路徑上的和最大。dp i j 表示 i 時刻 j位置的最大值 開...

hdu1176 免費餡餅

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