• 洛谷P2854 [USACO06DEC]牛的过山车Cow Roller Coaster


    P2854 [USACO06DEC]牛的过山车Cow Roller Coaster

    题目描述

    The cows are building a roller coaster! They want your help to design as fun a roller coaster as possible, while keeping to the budget.

    The roller coaster will be built on a long linear stretch of land of length L (1 ≤ L ≤ 1,000). The roller coaster comprises a collection of some of the N (1 ≤ N ≤ 10,000) different interchangable components. Each component i has a fixed length Wi (1 ≤ Wi ≤ L). Due to varying terrain, each component i can be only built starting at location Xi (0 ≤ Xi ≤ L - Wi). The cows want to string together various roller coaster components starting at 0 and ending at L so that the end of each component (except the last) is the start of the next component.

    Each component i has a "fun rating" Fi (1 ≤ Fi ≤ 1,000,000) and a cost Ci (1 ≤ Ci ≤ 1000). The total fun of the roller coster is the sum of the fun from each component used; the total cost is likewise the sum of the costs of each component used. The cows' total budget is B (1 ≤ B ≤ 1000). Help the cows determine the most fun roller coaster that they can build with their budget.

    奶牛们正打算造一条过山车轨道.她们希望你帮忙,找出最有趣,但又符合预算 的方案. 过山车的轨道由若干钢轨首尾相连,由x=0处一直延伸到X=L(1≤L≤1000)处.现有N(1≤N≤10000)根钢轨,每根钢轨的起点 Xi(0≤Xi≤L- Wi),长度wi(l≤Wi≤L),有趣指数Fi(1≤Fi≤1000000),成本Ci(l≤Ci≤1000)均己知.请确定一 种最优方案,使得选用的钢轨的有趣指数之和最大,同时成本之和不超过B(1≤B≤1000).

    输入输出格式

    输入格式:

    Line 1: Three space-separated integers: L, N and B.

    Lines 2..N+1: Line i+1 contains four space-separated integers, respectively: Xi, Wi, Fi, and Ci.

    输出格式:

    Line 1: A single integer that is the maximum fun value that a roller-coaster can have while staying within the budget and meeting all the other constraints. If it is not possible to build a roller-coaster within budget, output -1.

    输入输出样例

    输入样例#1:
    5 6 10
    0 2 20 6
    2 3 5 6
    0 1 2 1
    1 1 1 3
    1 2 5 4
    3 2 10 2
    输出样例#1:
    17

    说明

    Taking the 3rd, 5th and 6th components gives a connected roller-coaster with fun value 17 and cost 7. Taking the first two components would give a more fun roller-coaster (25) but would be over budget.

    /*
        看到本题不难想到二维费用的背包f[i][j]=max{f[i-a[i].len][j-a[i].w]+a[i].v},但是题目要求所有铁轨首尾相连,所以需要对a[]按起点排个序,剩下的就和上面的方程很像了
    */
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int L,N,B,f[1010][1010],ans=-1;
    struct node{
        int s,t,w,v;
    }a[10010];
    bool cmp(node x,node y){return x.s<y.s;}
    int main(){
        memset(f,-1,sizeof(f));
        f[0][0]=0;
        scanf("%d%d%d",&L,&N,&B);
        for(int i=1;i<=N;i++){
            scanf("%d%d%d%d",&a[i].s,&a[i].t,&a[i].v,&a[i].w);
            a[i].t+=a[i].s;
        }
        sort(a+1,a+N+1,cmp);
        for(int i=1;i<=N;i++){
            for(int j=B;j>=a[i].w;j--){
                if(f[a[i].s][j-a[i].w]>=0){
                    f[a[i].t][j]=max(f[a[i].t][j],f[a[i].s][j-a[i].w]+a[i].v);
                }
            }
        }
        for(int i=1;i<=B;i++)ans=max(ans,f[L][i]);
        printf("%d",ans);
    }
  • 相关阅读:
    微服务架构技术栈选型手册(万字长文)
    Visual Studio 2013 always switches source control plugin to Git and disconnect TFS
    Visual Studio 2013 always switches source control plugin to Git and disconnect TFS
    MFC对话框中使用CHtmlEditCtrl
    ATL开发 ActiveX控件的 inf文件模板
    ActiveX: 如何用.inf和.ocx文件生成cab文件
    Xslt 1.0中使用Array
    如何分隔两个base64字符串?
    An attempt was made to load a program with an incorrect format
    JQuery 公网 CDN
  • 原文地址:https://www.cnblogs.com/thmyl/p/7568978.html
Copyright © 2020-2023  润新知