p1095 守望者的逃離(動態規劃)
lili的
題目描述
惡魔獵手尤迪安野心勃勃,他背叛了暗夜精靈,率領深藏在海底的娜迦族企圖叛變。守望者在與尤迪安的交鋒中遭遇了圍殺,被困在乙個荒蕪的大島上。為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沉下去。到那時,島上的所有人都會遇難。守望者的跑步速度為
17m/s17m
/s,以這樣的速度是無法逃離荒島的。慶幸的是守望者擁有閃爍法術,可在1s1
s內移動
60m60
m,不過每次使用閃爍法術都會消耗魔法值
1010
點。守望者的魔法值恢復的速度為44
點/s/s
,只有處在原地休息狀態時才能恢復。
現在已知守望者的魔法初值mm
,他所在的初始位置與島的出口之間的距離ss
,島沉沒的時間tt
。你的任務是寫乙個程式幫助守望者計算如何在最短的時間內逃離荒島,若不能逃出,則輸出守望者在剩下的時間內能走的最遠距離。注意:守望者跑步、閃爍或休息活動均以秒
(s)(s)
為單位,且每次活動的持續時間為整數秒。距離的單位為公尺
(m)(m)
。輸入輸出格式
輸入格式:
共一行,包括空格隔開的三個非負整數
m, s, tm,
s,t。
輸出格式:
共兩行。第1
1行為字串
「 yes
yes」或「
nono
」(區分大小寫),即守望者是否能逃離荒島。第2
2行包含乙個整數。第一行為
「 yes
yes」
(區分大小寫)時表示守望者逃離荒島的最短時間;第一行為
「 nono」
(區分大小寫)時表示守望者能走的最遠距離。
輸入輸出樣例
輸入樣例
#1:
複製39 200 4
輸出樣例
#1:
複製no
197輸入樣例
#2:
複製36 255 10
輸出樣例
#2:
複製yes
6說明
30%的資料滿足:
1 \le t \le 10, 1 \le s\le 1001≤t
≤10,1≤
s≤100
50%的資料滿足:
1 \le t < \le 1000, 1\le s \le 100001≤t
<≤1000,1≤
s≤10000
100%
的資料滿足:
1 \le t \le 300000,0 \lem \le 1000, 1 \le s \le 10^81≤t
≤300000,0≤
m≤1000,1≤
s≤108.
#include #include using namespace std;
int dp[300010];
int main()
else
}for(i=1;i<=t;i++)
//如果超過了距離s,就成功了,輸出yes
}printf("no\n%d",dp[t]);//沒成功,輸出no
return 0;
}
P1095 守望者的逃離
惡魔獵手尤迪安野心勃勃,他背叛了暗夜精靈,率領深藏在海底的娜迦族企圖叛變。守望者在與尤迪安的交鋒中遭遇了圍殺,被困在乙個荒蕪的大島上。為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沉下去。到那時,島上的所有人都會遇難。守望者的跑步速度為17m s,以這樣的速度是無法逃離荒島的。慶幸的是守望...
P1095 守望者的逃離
惡魔獵手尤迪安野心勃勃,他背叛了暗夜精靈,率領深藏在海底的娜迦族企圖叛變。守望者在與尤迪安的交鋒中遭遇了圍殺,被困在乙個荒蕪的大島上。為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沉下去。到那時,島上的所有人都會遇難。守望者的跑步速度為17m s,以這樣的速度是無法逃離荒島的。慶幸的是守望...
P1095 守望者的逃離
題目描述 惡魔獵手尤迪安野心勃勃,他背叛了暗夜精靈,率領深藏在海底的娜迦族企圖叛變。守望者在與尤迪安的交鋒中遭遇了圍殺,被困在乙個荒蕪的大島上。為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沉下去。到那時,島上的所有人都會遇難。守望者的跑步速度為17m s,以這樣的速度是無法逃離荒島的。慶...