zoukankan      html  css  js  c++  java
  • 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;
    begin
        if x<y then exit(x) else exit(y);
    end;
    
    begin
        assign(input,'jump.in');
        reset(input);
        assign(output,'jump.out');
        rewrite(output);
        readln(n);
        for i:=1 to n do
        read(a[i]);
        for i:=2 to n do
        f[i]:=maxlongint;
        f[1]:=0;
        for i:=2 to n do
        for j:=1 to i-1 do
        if a[j]+j>=i then f[i]:=min(f[i],f[j]+1);
        write(f[n]);
        close(input);
        close(output);
    end.
    
    
  • 相关阅读:
    谷歌技术"三宝"之BigTable
    谷歌技术"三宝"之谷歌文件系统
    谷歌技术"三宝"之MapReduce
    大话存储
    ASP.NET之旅--深入浅出解读IIS架构
    好网站
    ArcGIS API for Silverlight学习资料积累
    浏览器滚动条快到底部时自动加载数据
    MVC EF中Attach和Entry区别
    微信开发jssdk入门
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500050.html
Copyright © 2011-2022 走看看