1. 程式人生 > 其它 >基礎DP 水題亂做

基礎DP 水題亂做

asdasdasd

本人dp零基礎,題解寫的水平不高,歡迎巨佬評論%%%,另:真的很水,大佬可以跳過

NOIP2007 T3 洛谷P1095

Description

守望者在與尤迪安的交鋒中遭遇了圍殺,被困在一個荒蕪的大島上。
為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沉下去。到那時,島上的所有人都會遇難。
守望者的跑步速度為 \(17m/s\),以這樣的速度是無法逃離荒島的。慶幸的是守望者擁有閃爍法術,可在 \(1s\) 內移動 \(60m\),不過每次使用閃爍法術都會消耗魔法值 \(10\) 點。守望者的魔法值恢復的速度為 \(4\) 點每秒,只有處在原地休息狀態時才能恢復。

現在已知守望者的魔法初值 \(M\)

,他所在的初始位置與島的出口之間的距離 \(S\),島沉沒的時間 \(T\)。你的任務是寫一個程式幫助守望者計算如何在最短的時間內逃離荒島,若不能逃出,則輸出守望者在剩下的時間內能走的最遠距離。

注意:守望者跑步、閃爍或休息活動均以秒為單位,且每次活動的持續時間為整數秒。距離的單位為米。

INPUT FORMAT

輸入資料共一行三個非負整數,分別表示 \(M\)\(S\)\(T\)

OUTPUT FORMAT

輸出資料共兩行。
第一行一個字串 \(\text{Yes}\)\(\text{No}\),即守望者是否能逃離荒島。
第二行包含一個整數。第一行為 \(\text{Yes}\)

時表示守望者逃離荒島的最短時間;第一行為 \(\text{No}\) 時表示守望者能走的最遠距離。

SAMPLE INPUT & OUTPUT

#1

INPUT

39 200 4

OUTPUT

No
197
#2

INPUT

36 255 10

OUTPUT

Yes
6

LIMITS

對於 100% 的資料, \(1 \leq T \leq 3*10^5\), \(0 \leq M \leq 10^3\), \(1 \leq S \leq 10^6\)

SOLUTION

首先考慮暴力 DP , 設
$f(i,j) 為 \(i\) 時刻,剩餘 \(j\) 魔法值所能跑出的最遠距離,