簡單dp
題目要求:求dp[0][5]到dp[t]的最大值
類似數塔 只不過1~9號位有三個方向可以選 0和10只有兩個
可將所有的時間段和餡餅看成是乙個矩陣,時間就是行數,掉餡餅的就是列數,則就是數字三角形問題,從最底層找一條路徑,使得路徑上的和最大。
dp[i][j] 表示 i 時刻 j位置的最大值
開始搞不懂為什麼要for t->0 for 1->10 然後就得到dp[0][5]
首先要從最後一秒往前推 就像數塔從最下層開始往上算
然後算每乙個位置能得到的最大值 因為你也不知道這些位置的下乙個位置是不是終點 所以每乙個位置從0->t都要算
#include#include#include#include#include#includeusing namespace std;
int dp[100005][15],n,t;
int max3(int a,int b,int c)
int main()
for(i=t;i>0;i--)//從最後一秒開始往前推
else if(j==10)
else}}
printf("%d\n",dp[0][5]);
}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 免費餡餅
problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於...
HDU 1176 免費餡餅
problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於...