日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pku3661 Running

發(fā)布時間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pku3661 Running 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

USACO月賽的銀組題,dp性質(zhì)比較明顯,實現(xiàn)時有細節(jié)要注意

用f[i,j]表示第i分鐘跑,疲勞度為j時的最遠距離

? g[i,j]表示第i分鐘休息,疲勞度為j時的最遠距離

有f[i,j]=max{f[i-1,j-1]+d[i]?? i>1 //上一秒跑

?????????????????? g[i-1,0]+d[i]??? j=1 //上一秒剛休息到疲勞為零}

? g[i,j]=max{g[i-1,j+1]? j<m //上一秒休息

?????????????????? f[i-1,j+1]? j<m //上一秒跑

?????????????????? g[i-1,0]?? j=0? //注意這個情況,體力為零時仍可以再休息}

View Code 1 program pku3661(input,output);
2 var
3 h : array[0..10001] of longint;
4 f,g : array[0..10001,-1..501] of longint;
5 n,m : longint;
6 procedure init;
7 var
8 i : longint;
9 begin
10 readln(n,m);
11 for i:=1 to n do
12 read(h[i]);
13 end; { init }
14 function max(aa,bb :longint ):longint;
15 begin
16 if aa>bb then
17 exit(aa);
18 exit(bb);
19 end; { max }
20 function min(aa,bb :longint ):longint;
21 begin
22 if aa<bb then
23 exit(aa);
24 exit(bb);
25 end; { min }
26 procedure main;
27 var
28 i,j : longint;
29 begin
30 fillchar(f,sizeof(f),0);
31 fillchar(g,sizeof(g),0);
32 for i:=1 to n do
33 for j:=0 to m do
34 begin
35 if j>1 then
36 f[i,j]:=max(f[i-1,j-1]+h[i],f[i,j]);
37 if j=1 then
38 f[i,j]:=max(f[i,j],g[i-1,0]+h[i]);
39 if j<=m-1 then
40 g[i,j]:=max(g[i-1,j+1],f[i-1,j+1]);
41 if j=0 then
42 g[i,j]:=max(g[i-1,0],g[i,j]);
43 end;
44 end; { main }
45 procedure print;
46 begin
47 writeln(g[n,0]);
48 end; { print }
49 begin
50 assign(input,'cowrun.in');reset(input);
51 assign(output,'cowrun.out');rewrite(output);
52 init;
53 main;
54 print;
55 close(input);
56 close(output);
57 end.



轉(zhuǎn)載于:https://www.cnblogs.com/neverforget/archive/2012/02/28/2371655.html

總結(jié)

以上是生活随笔為你收集整理的pku3661 Running的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。