傳送門
給你n個餡餅,之後給出n個餡餅掉落時間和位置。一共有11個位置從 0 ~ 10,這人初始在第5個位置,讓後每一秒最多能移動乙個單位,問這個人能最多能拿多少餡餅。
思路:有點像數字三角形,但是需要逆著推,保證沒有後效性,最後f[0][5]就是答案。
//#pragma gcc optimize(2)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define x first
#define y second
#define l (u<<1)
#define r (u<<1|1)
#define pb push_back
#define mk make_pair
#define mid (tr[u].l+tr[u].r>>1)
#define len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using
namespace std;
void
rd_cre()
void
rd_ac()
void
rd_wa()
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef pair<
int,
int> pii;
const
int n=
100010
,mod=
1e9+
7,inf=
0x3f3f3f3f
;const
double eps=
1e-6
;int n,x,t;
int f[n][11
];intmain()
for(
int i=mx;i>=
0;i--
)for
(int j=
0;j<=
10;j++
) f[i]
[j]+
=max
(f[i+1]
[j],
max(f[i+1]
[max
(j-1,0
)],f[i+1]
[min
(j+1,10
)]))
;printf
("%d\n"
,f[0][
5]);
}return0;
}/**/
免費餡餅 (dp)
都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於小徑兩側都不能站人,所以他只能在小徑上接...
免費餡餅(DP)
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不 掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gamebo...
免費餡餅 (dp)
都說天上不會掉餡餅,但有一天gameboy正走在回家的小徑上,忽然天上掉下大把大把的餡餅。說來gameboy的人品實在是太好了,這餡餅別處都不掉,就掉落在他身旁的10公尺範圍內。餡餅如果掉在了地上當然就不能吃了,所以gameboy馬上卸下身上的揹包去接。但由於小徑兩側都不能站人,所以他只能在小徑上接...