2017年9月2日普级组T2 跳格子
生活随笔
收集整理的這篇文章主要介紹了
2017年9月2日普级组T2 跳格子
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
大家都說要勞逸結合,Ayumi, Mitsuhiko, Genta畫完方格就出去運動啦!
他們來到了一片空地,畫了N個連續的方格,每個方格上隨機填上了一個數字,大家從第一個格子開始,每次可以向后跳不超過當前格子上的數的步數,大家開始就此比賽,看誰跳到最后一個格子的步數最少。
作為隊長的Genta顯然是想獲得勝利的,所以他打電話給Conan求助,可是Conan在玩游戲,所以就向你求助了。
Input
輸入第一行包含一個整數N,表示畫的格子的個數。
第二行包含N整數,表示每個格子上的數。
Output
輸出一行,表示跳的最少步數。
Sample Input
5
2 3 1 1 1
Sample Output
2
分析
這題是一道dp(非常水)
設f[i]表示從格子1到格子i的最少步數
得:f[i]:=min(f[i],f[j]+1);a[j]+j>=i;1<=j<=i-1;
程序:
var n,i,j:longint; a,f:array[0..6000]of longint;function min(x,y:longint):longint; beginif x<y then exit(x) else exit(y); end;beginassign(input,'jump.in');reset(input);assign(output,'jump.out');rewrite(output);readln(n);for i:=1 to n doread(a[i]);for i:=2 to n dof[i]:=maxlongint;f[1]:=0;for i:=2 to n dofor j:=1 to i-1 doif a[j]+j>=i then f[i]:=min(f[i],f[j]+1);write(f[n]);close(input);close(output); end.轉載于:https://www.cnblogs.com/YYC-0304/p/9500050.html
總結
以上是生活随笔為你收集整理的2017年9月2日普级组T2 跳格子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017年9月2日普级组T1 正方形
- 下一篇: 2017年9月9日普级组 优美三角剖分