免費餡餅 HDU 1176

2022-06-29 23:33:18 字數 618 閱讀 5126

原題鏈結

考察:線性dp

思路:乍一看我還以為是揹包dp,實際不是,f[i][j]表示第i秒,j位置能得到的最大數.f[i][j] = max(f[i-1][j],f[i-1][j-1],f[i-1][j+1])+w[i][j].每個位置能獲得的餡餅數要用另乙個陣列存,不能用f陣列.

關於如何初始化,除了f[0][5]全部負無窮.

1 #include 2 #include 3 #include 4

using

namespace

std;

5const

int n = 100010;6

int f[n][15],n,w[n][15];7

intmain() 822

for(int i=1;i<=ti;i++)

23for(int j=0;j<=10;j++)

2431

int ans = 0;32

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

33 printf("

%d\n

",ans);34}

35return0;

36 }

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馬上卸下身上的揹包去接。但由於...