zoukankan      html  css  js  c++  java
  • hdu 2059 水题 dp 线性dp 双层循环进行枚举 good rabbit

    dp主要是找到状态方程,大多运用双层循环,进行整体最优解的积累,像数塔,时间安排

    比较困难的就需要循环加条件判断比较,还有比较需要熟悉的是一般都是先从后往前递归出方程,

    在进行递推编码

    #include <stdio.h>

    int main()
    {
    int i,j;

    int n,c,t;

    int vt,v1,v2;

    int len;

    int p[102];

    double e,min,dp[102]={0};

    while(scanf("%d",&len)!=EOF)
    {
    scanf("%d%d%d",&n,&c,&t);

    scanf("%d%d%d",&vt,&v1,&v2);

    for(i=1;i<n+1;i++)scanf("%d",&p[i]);

    p[0]=0;

    p[i]=len;

    for(i=1;i<n+2;i++)
    {
    min=0x7f7f7f7f;

    for(j=0;j<i;j++)
    {
    int l=p[i]-p[j];

    e=l>c?(c*1.0/v1+(l-c+0.0)/v2):l*1.0/v1;
    e+=dp[j];
    if(j)e+=t;
    if(min>e)min=e;
    }
    dp[i]=min;
    }

    printf(dp[n+1]>(len*1.0/vt)?"Good job,rabbit!\n":"What a pity rabbit!\n");
    }

    return 0;
    }


     

  • 相关阅读:
    Android应用增量更新
    corner2
    UIProject
    Argo
    flower-recognition
    Android-Chat-Widget
    leanchat-android
    Beautyacticle
    XianBicycle
    完整性约束(章节摘要)
  • 原文地址:https://www.cnblogs.com/jackes/p/2422422.html
Copyright © 2011-2022 走看看