zoukankan      html  css  js  c++  java
  • HDOJ_1548 上楼梯 DJ

    这个题,我使用最短路的方法解得,初始化每段路为1 ,这样只要找出荷最小的就最佳方法。初始化时,用上下来初始MAP

    #include<stdio.h>
    #define MAX (1<<20)
    #define MAX_1 1001
    int n,A,B,map[MAX_1][MAX_1],dis[MAX_1];
    bool vista[MAX_1];
    void dilskta(int k)
    {
        int i,j,u,min;
        for(i=1;i<=n;++i)
        {
            vista[i]=false;
            dis[i]=map[i][k];
        }
        for(i=2;i<=n;++i)
        {
            min=MAX;
            for(j=1;j<=n;++j)
            {
                if(!vista[j]&&min>dis[j])
                {
                    u=j;
                    min=dis[j];
                }
            }
            vista[u]=true;
            for(j=1;j<=n;++j)
            {
                if(!vista[j]&&dis[j]>min+map[j][u])
                {
                    dis[j]=min+map[j][u];
                }
            }
        }
    }
    
    int main()
    {
        int i,j,A,B,move[MAX_1],down,up;
        while(scanf("%d",&n),n)
        {
            scanf("%d%d",&A,&B);
            for(i=1;i<=n;++i)
                scanf("%d",&move[i]);
            for(i=1;i<=n;++i)
                for(j=1;j<=n;++j)
                    map[i][j]=i==j?0:MAX;
            for(i=1;i<=n;++i)
            {
                up=i+move[i];
                down=i-move[i];
                if(up<=n)
                    map[i][up]=1;
                if(down>=1)
                    map[i][down]=1;
            }
            dilskta(B);
            if(dis[A]!=MAX)
             printf("%d\n",dis[A]);
            else
               printf("-1\n");
        }
        return 0;
    }
  • 相关阅读:
    ajax 同步模式与异步模式
    Ajax -get 请求
    Ajax -post 请求
    Ajax 遵循HTTP协议
    Ajax 发送请求
    宽高自适应案例
    伸缩导航案例
    伸缩属性的 grow与 shrink
    伸缩布局
    hdu-5858 Hard problem(数学)
  • 原文地址:https://www.cnblogs.com/zibuyu/p/2650446.html
Copyright © 2011-2022 走看看