時間限制: 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列。如果黑方玩家走出這樣一部棋 將一枚黑子放在任一空格上,而在這個空格的八個方向 上...