zoukankan      html  css  js  c++  java
  • uva 607 Scheduling Lectures(DP)

    很水的一道DP

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    using namespace std;
    int a[1010],l,c,n;
    int dp[1010],cost[1010];
    int f(int x){
        if(x==0) return 0;
        else if(x<=10) return -c;
        else return (x-10)*(x-10);
    }
    int main(){
        int cas=1;
        while(~scanf("%d",&n)&&n){
            scanf("%d%d",&l,&c);
            for(int i=1;i<=n;i++) scanf("%d",&a[i]);
            for(int i=1;i<1010;i++) dp[i]=1000000000;
            dp[1]=1,cost[1]=f(l-a[1]);
            for(int i=2;i<=n;i++){
                int sum=0;
                for(int j=i;j>=1;j--){
                    sum+=a[j];
                    if(sum>l) break;
                    if(dp[j-1]+1<dp[i]){
                        dp[i]=dp[j-1]+1;
                        cost[i]=cost[j-1]+f(l-sum);
                    }else if(dp[j-1]+1==dp[i]){
                        if(cost[j-1]+f(l-sum)<cost[i]){
                            cost[i]=cost[j-1]+f(l-sum);
                        }
                    }
                }
                //cout<<dp[i]<<" "<<cost[i]<<endl;
            }
            if(cas>1) puts("");
            printf("Case %d:
    ",cas++);
            printf("Minimum number of lectures: %d
    ",dp[n]);
            printf("Total dissatisfaction index: %d
    ",cost[n]);
        }
        return 0;
    }
    uva607
  • 相关阅读:
    Vue状态管理
    Vue延迟点击
    Vue路由
    简单的队列应用
    Uncaught SyntaxError: Unexpected token )
    视频转码
    判断是否为视频文件
    Press ^C at any time to quit.
    Node.js学习
    YUM安装LAMP与LNMP
  • 原文地址:https://www.cnblogs.com/wonderzy/p/3541833.html
Copyright © 2011-2022 走看看