文章標題 HDU 1176 免費餡餅 (DP)

2021-07-16 21:36:37 字數 944 閱讀 6014

題意:就是在0~10的座標上,每一秒都有餡餅掉在這上面,然後,現在有乙個人在5的位置上,每次他只能移動乙個,比如他在5 位置,下一秒他可以跑到4 5 6其中乙個上面,現在就是要求當餡餅掉完之後,他最多能接到多少餡餅。

分析:這是一道動態規劃的問題,定義dp[i,j]表示為在第i秒時在j位置最多能那到的餡餅的數量。輸入時用乙個陣列num[i,j]儲存第i秒在j 位置上餡餅的數量,所以就可以得到狀態轉移方程

dp[i][j]=max(dp[i-1][j]+num[i][j], dp[i-1][j-1]+num[i][j], dp[i-1][j+1]+num[i][j])

**:

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int inf = 0x3f3f3f3f;

int n;

node a[100005];

int num[100005][11];

int dp[100005][11];

int main ()

dp[1][4]=num[1][4];//初始化

dp[1][5]=num[1][5];

dp[1][6]=num[1][6];

for (int i=2;i<=maxt;i++)

else

if (j==10)

else } }

int ans=0;

for (int i=0;i<=10;i++)

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