noip2007守望著的逃離 2008 11 5

2021-07-09 20:45:47 字數 2041 閱讀 3184

noip2007守望著的逃離 2008.11.5

小結:到每一秒的時候,有三種選擇:1,原地不動,m+4;2.使用魔法m-10,s+10;3.步行

這裡還用到了乙個貪心的策略:只要魔法值》=10,就用魔法,而不是原地呆著。所以,就變成了兩種選擇:1.可以用魔法就用,不能永就原地呆著—魔法選擇(我們把用魔法和不用魔法歸為為一類)

2.步行—不性選擇

為什麼會有這樣乙個貪心策略呢?

t 1         2       3   |   4      5

10(用去)4       8   |   12 (此時就有可以用魔法了,所以,歸到下一次的時間中) 

用魔法  當m=10時,可用3s行走60m v1:=20m/s

用步行  17m/s

所以用魔法和原地不動就可以合為一種情況了

心得:1.

遇到像這樣選擇不同的方式有不同的效率的題,就要討論一下哪種方式更合算 2.

有時dp

也可以將幾種情況合併

我的,省去了陣列的:每一秒,只和前一秒有關,所以只用幾下前一秒就行了

program escape;

const fin='escape.in';fout='escape.out';

var m,s,t,ti:longint;

ts,ms1,ms2:longint;

f1,f2:text;

begin

assign(f1,fin);reset(f1);

assign(f2,fout);rewrite(f2);

read(f1,m,s,t);

ms2:=m;ts:=0;ms1:=0;

for ti:=1 to t do

begin

if ms2>=10 then

begin ms1:=ms1+60;ms2:=ms2-10;end

else ms2:=ms2+4;

if ts+17>ms1 then ts:=ts+17 else ts:=ms1;

if ts>=s then

begin writeln(f2,'yes');

writeln(f2,ti);

close(f1);close(f2);

halt;

end;

end;

writeln(f2,'no');

writeln(f2,ts);

close(f1);close(f2);

end.

標稱:

var m,s,t,ti:longint;

ms:array[1..2,0..300000] of longint;

ts:array[0..300000] of longint;

begin

while not eof do

begin

readln(m,s,t);

ms[2,0]:=m;

ts[0]:=0;

for ti:=1 to t do

begin

if ms[2,ti-1]>=10 then

begin

ms[1,ti]:=ms[1,ti-1]+60;

ms[2,ti]:=ms[2,ti-1]-10;

endelse

begin

ms[1,ti]:=ms[1,ti-1];

ms[2,ti]:=ms[2,ti-1]+4;

end;

if ts[ti-1]+17>ms[1,ti] then ts[ti]:=ts[ti-1]+17

else ts[ti]:=ms[1,ti];

if ts[ti]>=s then

begin

writeln('yes');

writeln(ti);

halt;

end;

end;

writeln('no');

writeln(ts[t]);

end;

end.

NOIP2007普及 守望者的逃離

傳送門 普及組的題目 很水。原來寫了乙個模擬不過好像狀態考慮的不全得了80,這次我們考慮一下dp做法。守衛者有兩種移動的方法,一種是閃現,一種是跑,我們可以把閃現和跑分開處理。首先只處理閃現的情況,這個時候要用貪心,能閃就閃,否則原地回藍即可。之後在處理跑步的情況,這種情況就要用dp了,方程很好推,...

noip2007普及組 守望者的逃離 題解

惡魔獵手尤迪安野心勃勃,他背叛了暗夜精靈,率領深藏在海底的娜迦族企圖叛變。守望者 在與尤迪安的交鋒中遭遇了圍殺,被困在乙個荒蕪的大島上。為了殺死守望者,尤迪安開始對這 個荒島施咒,這座島很快就會沉下去。到那時,島上的所有人都會遇難。守望者的跑步速度為 17m s,以這樣的速度是無法逃離荒島的。慶幸的...

2007noip普及組 守望者的逃離

惡魔獵手尤迫安野心勃勃.他背叛了暗夜精靈,率深藏在海底的那加企圖叛變 守望者在與尤迪安的交鋒中遭遇了圍殺.被困在乙個荒蕪的大島上。為了殺死守望者,尤迪安開始對這個荒島施咒,這座島很快就會沉下去,到那時,刀上的所有人都會遇難 守望者的跑步速度,為17m s,以這樣的速度是無法逃離荒島的。慶幸的是守望者...