zoukankan      html  css  js  c++  java
  • P2800 又上锁妖塔

    P2800 又上锁妖塔
    三种方式,当前这一层,是爬上来的,由上一层跳上来,由上二层跳上来。
    取min

    #include<iostream>
    #include<cstdio>
    #include<queue>
    #include<algorithm>
    #include<cmath>
    #include<ctime>
    #include<cstring>
    #define inf 2147483647
    #define For(i,a,b) for(register int i=a;i<=b;i++)
    #define p(a) putchar(a)
    #define g() getchar()
    //by war
    //2017.10.16
    using namespace std;
    int n;
    int Min=inf;
    int h[1000010];
    int f[1000010][3];
    void in(int &x)
    {
        int y=1;
        char c=g();x=0;
        while(c<'0'||c>'9')
        {
        if(c=='-')
        y=-1;
        c=g();
        }
        while(c<='9'&&c>='0')x=x*10+c-'0',c=g();
        x*=y;
    }
    void o(int x)
    {
        if(x<0)
        {
            p('-');
            x=-x;
        }
        if(x>9)o(x/10);
        p(x%10+'0');
    }
    int main()
    {
        in(n);
        For(i,1,n)
        in(h[i]);
        For(i,1,n)
            For(j,0,2)
              f[i][j]=inf;
        f[1][0]=h[1];
        f[1][1]=0;
        f[1][2]=0;
        For(i,2,n)
        {
            For(j,0,2)
            f[i][0]=min(f[i][0],f[i-1][j]+h[i]);
            f[i][2]=min(f[i][2],f[i-2][0]);
            f[i][1]=min(f[i][1],f[i-1][0]);
        }
        For(i,0,2)
        Min=min(Min,f[n][i]);
        o(Min);
    /*    For(i,1,n)
        {
            For(j,0,2)
            o(f[i][j]),p(' ');
            p('
    ');
        }    */
         return 0;
    }
  • 相关阅读:
    H5 俄罗斯方块Demo
    HTML5 Web Workers
    H5 基于Web Storage 的客户端留言板
    H5 百度一下,你就知道
    H5 71-网易注册界面4
    H5 70-清除浮动方式五
    H5 69-清除浮动方式四
    H5 68-伪元素选择器
    H5 67-清除浮动方式三
    H5 66-清除浮动方式二
  • 原文地址:https://www.cnblogs.com/war1111/p/7677559.html