感謝sjy巨巨的幫助,一開始知道這是一道dp題但就是找不到思路,經過sjy巨巨的指點才搞懂。
這道題是以每一秒為乙個狀態,遍歷一遍座標,狀態是從最後一秒往前遍歷。
就樣例來說的話,最後一秒是第3秒,座標是8。那麼此時的狀態可以由第2秒的時間,座標7,8,9三個位置過來。
用乙個二維陣列,下標分別表示時間 t 和 位置 x。可以得到 dp[x][t]=max( dp[x][t],dp[y][t-1]+dp[x][t] ) 『y 從 x-1 迴圈到x+1,因為x的位置可以由這三個位置到達』;
#include#include#include
#include
using
namespace
std;
int dp[100010][15
];int
t,n,x,y;
intmain()
for(int i=mm-1; i>=0; i--)}}
printf(
"%d\n
",dp[0][6
]); }
return0;
}
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馬上卸下身上的揹包去接。但由於...