動態規劃 免費餡餅

2021-08-13 18:28:50 字數 831 閱讀 1862

思路:

二維動態規劃,用二維陣列sum[i][j]表示在第i秒時在j位置處所能接到的最大的餡餅數,a[i][j]表示第i秒時在j位置處所下落的餡餅數,則sum[i][j]的狀態由sum[i-1][j+1]和sum[i-1][j]和sum[i-1][j-1]決定,即:sum[i][j]=max(max(sum[i-1][j],sum[i-1][j+1]),sum[i-1][j-1])+a[i][j];

最終對每個位置的時間狀態為最後時間進行比較,找出最大值。

**如下:

#include #include #include #include using namespace std;

int a[100010][12];

int sum[100010][12];

int main()

sum[1][4]=a[1][4];

sum[1][5]=a[1][5];

sum[1][6]=a[1][6];

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

}int ans=-1;

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

ans=max(ans,sum[maxn][i]);

printf("%d\n",ans);

}return 0;

}

動態規劃 免費餡餅

由數塔引出。數塔 處於乙個端點,每次可以選擇向左或向右。而每次選擇,取決於,向左能夠得到最大值,還是向右能得到最大值。當到達數塔倒數第二行時,向左還是向右,僅僅取決於,向左的端點數值大還是向右的大。自頂向下思考,自底向上計算。將數塔傾斜,用i,j表示在數塔中位置,dp i j 則表示在為位置 i j...

動態規劃 免費餡餅

都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於小徑兩側都不能站人,所以他只能在小徑上接...

SDUT 免費餡餅 動態規劃

time limit 1000 ms memory limit 32768 kib submit statistic problem description 都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不...