克羅埃西亞 NIKOLA

2021-07-12 03:57:14 字數 1533 閱讀 5200

時間限制: 1000 ms 空間限制: 65536 kb 具體限制

description

nikola現在已經成為乙個遊戲裡的重要人物。這個遊戲是由一行n個方格,n個方格用1到n的數字表示。nikola開始是在1號位置,然後能夠跳到其他的位置,nikola的第一跳必須跳到2號位置。隨後的每一跳必須滿足兩個條件:

1、如果是向前跳,必須比前面一跳遠乙個方格。

2、如果是向後跳,必須和前面一跳一樣遠。

比如,在第一跳之後(當在2號位置時),nikola能夠跳回1號位置,或者向前跳到4號位置。

每次他跳入乙個位置,nikola必須付費。nikola的目標是從一號位置盡可能便宜地跳到n號位置。

寫乙個程式,看看nikola跳到n號位置時最小的花費。

input

第一行:包含乙個整數n,2≤n≤1000,它是位置的編號。

第2..n+1行:第i+1行表示第i個方格的費用,是乙個正整數,絕對不超過500。

output

輸出nikola跳到n號位置時最小的花費。

sample input

6 1

2 3

4 5

6 sample output

12設f[i,j]表示從上乙個點經過i格到達j點的最小值那麼f

[i,j

]=mi

n(f[

i,j]

−v[j

],f[

i−1,

j−i]

,f[i

,j+i

])+v

[j]

codes:

var f:array[0..1000,1..1000] of longint;

t:array[1..1000]of longint;

n,i,j,ans:longint;

function

min(p,q:longint):longint;

begin

if pthen

exit(p) else

exit(q);

end;

begin

read(n);

for i:=1

to n do

read(t[i]);

fillchar(f,sizeof(f),$7f);

f[0,1]:=0;

ans:=maxlongint;

for j:=1

to n do

begin

for i:=n downto1do

begin

if i+j<=n then f[j,i]:=min(f[j,i],f[j,i+j]+t[i]);

if i-j>0

then f[j,i]:=min(f[j,i],f[j-1,i-j]+t[i]);

end;

if f[j,n]then ans:=f[j,n];

end;

writeln(ans);

end.

1150 克羅埃西亞 NIKOLA

nikola現在已經成為乙個遊戲裡的重要人物。這個遊戲是由一行n個方格,n個方格用1到n的數字表示。nikola開始是在1號位置,然後能夠跳到其他的位置,nikola的第一跳必須跳到2號位置。隨後的每一跳必須滿足兩個條件 1 如果是向前跳,必須比前面一跳遠乙個方格。2 如果是向後跳,必須和前面一跳一...

克羅埃西亞 INSTRUKCIJE

時間限制 1000 ms 空間限制 65536 kb 具體限制 description 小馬克今年成為小學生。不久後她將進行她的第一次考試,其中包括數學考試。她非常認真地複習,她認為自己已經準備好了。她的哥哥通過給她提出問題並解決的方式幫助她。他寫下許多問題,其中乙個問題是由一連串整齊的數字組成,比...

克羅埃西亞 LAGNO

time limits 910 ms memory limits 524288 kb description lagno 西班牙和奧賽羅 是一種二人智力遊戲。遊戲設有乙個黑方和乙個白方。遊戲桌面是正方形的,包含8行8列。如果黑方玩家走出這樣一部棋 將一枚黑子放在任一空格上,而在這個空格的八個方向 上...