去年暑假的時候就看到這個題了,當時太菜了。。完全不知道做。。。今天看到了網上的hdu dp46題,準備暑假前把這46個題搞了,正好看到了這個免費餡餅,怒a之。
狀態轉移方程 :dp[i][j] = max(dp[i][j], max(dp[i-1][j], max(dp[i-1][j-1], dp[i-1][j+1])) + v[i][j]);
其中dp[i][j]表示第i秒在座標j時得到的最多餡餅個數,v[i][j]為第i秒落在j處的餡餅個數。邊界注意下就行了。
#include#include#include#includeusing namespace std;
const int maxn = 100001;
int v[maxn][11], dp[maxn][11], n;
int main()
{ while(scanf("%d", &n) && n)
{memset(dp, 0, sizeof(dp));
memset(v, 0, sizeof(v));
int x, t, t = 0;
for(int i=0; i
HDU1176 免費餡餅 DP
problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於...
HDU 1176 免費餡餅 (DP)
problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於...
HDU1176 免費餡餅 DP
題目大意 區間 0,10 上掉落餡餅,每秒在乙個整數點上掉落乙個餡餅,gameboy第0秒在位置5,他在第一秒只能接到4,5,6這三個位置上的餡餅,問你最多可以接到多少餡餅。分析 數塔問題。我們以時間為橫座標,位置為縱座標建立乙個矩陣,那麼我們會發現,其實就是在 0,5 位置找到一條到達最底層的路徑...