為了使問題簡化,假設在接下來的一段時間裡,餡餅都掉落在0-10這11個位置。開始時gameboy站在5這個位置,因此在第一秒,他只能接到4,5,6這三個位置中其中乙個位置上的餡餅。問gameboy最多可能接到多少個餡餅?(假設他的揹包可以容納無窮多個餡餅)
5 14 1
6 17 2
7 28 3
0設a[i][j]為第i秒的j位置掉下的餡餅數量,f[i][j]為第i秒在j位置接餡餅最多可以接到的最多餡餅數量。由於每秒只能移動乙個位置,因此這一狀態可能由三種情況達到:
f[i - 1][j - 1]
f[i - 1][j]
f[i - 1][j + 1]
這三種情況中的最大值加上當前位置可以接到的餡餅數即是當前位置可以接到的最大餡餅數量:
dp為: f [ i ] [ j ] = max ( f [ i - 1 ] [ j - 1 ] , f [ i - 1 ] [ j ] , f [ i - 1 ] [ j + 1 ] ) + a [ i ] [ j ] ;
#include #include#include
using
namespace
std;
int a[100001][12
];int f[100001][12
];int
main()
f[1][4]=a[1][4
];
f[1][5]=a[1][5
]; f[
1][6]=a[1][6
];
for(i=2;i<=maxn;i++)
}for(i=0;i<11;i++)
ans=max(ans,f[maxn][i]);
printf(
"%d\n
",ans);
}return0;
}
G 免費餡餅
g 免費餡餅 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 1176 prayerhgq 2015 07 28 system crawler 2015 12 30 d...
G 免費餡餅
都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於小徑兩側都不能站人,所以他只能在小徑上接...
G 免費餡餅
都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於小徑兩側都不能站人,所以他只能在小徑上接...