• hdu 1494 跑跑卡丁车


    hdu 1494

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1494
    题目大意:中文的不用讲了吧。

    分析:
    这个题最主要的是注意卡丁车行驶过程中能量状态的变化,分析卡丁车的加速的规律 将加速与能量相结合,变成能量状态,最后分析此状态是如何得来,进行计算。 状态转移方程:加速f[i][j]=min(f[i][j],f[i-1][j+5]+b[i]) 正常:f[i][j]=min(f[i][j],f[i-1][j-1]+a[i]).可以用线段图表示能量状态。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    #define inf 0x3f3f3f3f
    
    int l,n;
    int f[10005][15];//f[i][j]表示行驶完第i段该段能量状态为j的最小时间。
    int a[10005],b[10005];
    
    int minn(int a,int b)
    {
        return a<b?a:b;
    }
    
    void dp()
    {
        memset(f,inf,sizeof(f));
        f[0][0]=0;
        for(int i=1;i<=n*l;i++)
        {
            for(int j=0;j<15;j++)//看做背包容量,正常跑,加速跑为物品,正常跑+1,加速-5;
            {
                if(j==0)
                    f[i][j]=f[i-1][j+5]+b[i];
                else
                {
                    f[i][j]=f[i-1][j-1]+a[i];//正常行驶
                    if(j==10)//当能量状态=14时,下一段的能量状态退回到j=10。
                        f[i][j]=minn(f[i][j],f[i-1][14]+a[i]);
                    if(j<10)
                        f[i][j]=minn(f[i-1][j+5]+b[i],f[i][j]);
                }
            }
        }
    }
    
    int main()
    {
        int m;
        while(~scanf("%d%d",&l,&n))
        {
            m=inf;
            for(int i=1;i<=l;i++)
                scanf("%d",&a[i]);
            for(int i=1;i<=l;i++)
                scanf("%d",&b[i]);
            for(int i=l+1;i<=n*l;i++)
            {
                a[i]=a[i-l];
                b[i]=b[i-l];
            }
            dp();
            for(int i=0;i<15;i++)
                if(f[l*n][i]<m)
                m=f[l*n][i];
            printf("%d
    ",m);
        }
        return 0;
    }
    

      

     
  • 相关阅读:
    Ural1387 Vasya's Dad
    SGU481 Hero of Our Time
    sjtu1590 强迫症
    sjtu1591 Count On Tree
    sjtu1585 oil
    sjtu1364 countcountcount
    sjtu1333 函数时代
    Fabric-ca client端初始化过程源码分析
    Fabric-ca server端与client端交互
    Fabric-ca server端初始化过程源码分析
  • 原文地址:https://www.cnblogs.com/yang-/p/4732680.html
Copyright © 2020-2023  润新知