HDU 1176 免費餡餅

2021-07-11 00:50:07 字數 724 閱讀 7767

這個題目和最基礎的那個金字塔型的那種dp問題很類似。定義狀態dp[i][j]:表示在i這個時間在j這個位置可以得到的最大的餅的數目;狀態轉移方程:   dp[i][j] = user_max(dp[i + 1][j - 1], dp[i + 1][j], dp[i + 1][j + 1]) + arr[i][j];其中user_max是自己寫的乙個比較三個數中最大的數的函式,arr[i][j]這個陣列用來儲存在i這個時間點j這個位置餅的數目。

#include #include #include using namespace std;

const int max = 1e5 + 5;

int arr[max][15], dp[max][15];

int user_max(int a, int b, int c)

int main()

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

dp[max_time][i] = arr[max_time][i];

/*for (int i = 1; i <= max_time; ++i)

printf("\n");}*/

for (int i = max_time - 1; i >= 1; --i)

}printf("%d\n", user_max(dp[1][5],dp[1][6], dp[1][7]));

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