HDU 1176 免費餡餅 樹上的dp

2021-07-02 04:47:38 字數 707 閱讀 9947

題意:給定乙個數軸,然後在不同的時間有餡餅落在每個點上,求怎樣才能是接收到的餡餅最多。

樹上的動態規劃,看見別人這樣說,也許是因為他的狀態轉移類似於樹吧。

狀態轉移挺簡單的:當前狀態只能由自己或是相鄰的位置轉移得到。

**:

#include#include#include#include#define maxn 100010

#define inf 0x7fffffff

using namespace std;

int n;

int map[12][maxn],dp[12][maxn];

int main()

dp[i][t]=dp[i][t-1];

if(i==0) dp[i][t]=max(dp[i][t],dp[i+1][t-1]);

else if(i==10) dp[i][t]=max(dp[i][t],dp[i-1][t-1]);

else dp[i][t]=max(max(dp[i-1][t-1],dp[i+1][t-1]),dp[i][t]);

dp[i][t]+=map[i][t];

}int ans=0;

for(int i=0;i<=10;i++) ans=max(ans,dp[i][max]);

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

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

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

hdu1176 免費餡餅

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