zoukankan      html  css  js  c++  java
  • hdu 1158 dp

     1 /*
     2 题目大意:给n个月工作需要的人数,雇佣一个需要花hire
     3 每个月的薪水是salary,解雇一个需要fire
     4 求完成所有工作的最小费用
     5 dp(i,j)表示第i个月雇佣j员工的最小费用
     6 */
     7 #include <iostream>
     8 #include <cstdio>
     9 #include <cstring>
    10 using namespace std;
    11 
    12 const int maxn=15;
    13 const int INF=1<<30;
    14 int dp[maxn][300],num[maxn];
    15 inline int max(int a,int b){return a>b?a:b;}
    16 inline int min(int a,int b){return a<b?a:b;}
    17 int main()
    18 {
    19     int n,hire,salary,fire,i,j,k,Max;
    20     while(scanf("%d",&n),n)
    21     {
    22         scanf("%d%d%d",&hire,&salary,&fire);
    23         Max=0;
    24         for(i=1;i<=n;i++)
    25         {
    26             scanf("%d",num+i);
    27             Max=max(num[i],Max);
    28         }
    29         for(i=0;i<=Max;i++)
    30             dp[1][i]=(hire+salary)*i;
    31         for(i=2;i<=n;i++)
    32         {
    33             for(j=num[i];j<=Max;j++)
    34             {
    35                 int temp=INF;
    36                 for(k=num[i-1];k<=Max;k++)
    37                 if(k<j)
    38                     temp=min(temp,dp[i-1][k]+hire*(j-k)+salary*j);
    39                 else
    40                     temp=min(temp,dp[i-1][k]+fire*(k-j)+salary*j);
    41                 dp[i][j]=temp;
    42             }
    43         }
    44         int ans=INF;
    45         for(i=num[n];i<=Max;i++)
    46             ans=min(ans,dp[n][i]);
    47         printf("%d
    ",ans);
    48     }
    49     return 0;
    50 }
  • 相关阅读:
    事件溯源的使用实例
    CQRS With Axon
    maven打包带依赖
    MongoDB Query语法和工具
    docker 在外部指定参数变量 spring
    logger 过滤部分类的logger
    Nginx ServerName指令
    Nginx 处理Http请求简单流程
    Listen 指令
    Nginx 配置
  • 原文地址:https://www.cnblogs.com/xiong-/p/4102725.html
Copyright © 2011-2022 走看看