HDU1176 免費餡餅 數塔問題

2021-10-24 14:36:12 字數 1244 閱讀 1630

免費餡餅

題意:人物最開始站在座標為5的位置,每秒鐘最多橫向移動乙個單位,並且只能接住乙個單位距離內的的餡餅。天上會在某個時刻在某個位置掉落餡餅,問人物最多能夠接住幾個餡餅。

題解:這是乙個典型的數塔問題,如果你非要較真,從5出發,去計算到最後時刻,所有移動的可能性,以及所有的接住餡餅數,那真有你的 。當然不能這麼做咯,當乙個問題正向思考過於複雜的時候,我們就應該試著逆向思考了。

#include

using

namespace std;

typedef

long

long ll;

const

int inf =

0x3f3f3f3f

;#define dbg(x...) \

do while (0)

void

err(

)template

<

classt,

class..

. ts>

void

err(

const t& arg,

const ts&..

. args)

inline

intread()

while

(ch >=

'0'&& ch <=

'9') s = s *

10+ ch -

'0', ch =

getchar()

;return s * w;

}const

int n =

1e5+10;

int n;

int xb[20]

[n];

int dp[20]

[n];

void

run(

)for

(int i =

0; i <

13; i++

) dp[i]

[maxt]

= xb[i]

[maxt]

;for

(int j = maxt -

1; j >=

0; j--)}

printf

("%d\n"

, dp[6]

[0])

;}intmain()

HDU 1176 免費餡餅 數塔

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

HDU 1176 免費餡餅 (DP 數塔問題)

include include include include using namespace std const int maxn 100005 int n int dp 15 maxn int arr 15 maxn int tmax intmain for int i tmax 1 i 0 i...

HDU 1176 數塔DP 免費餡餅

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