• 配置魔药(双线程序列动态规划)


    配置魔药

    问题描述:
    在《Harry Potter and the Chamber of Secrets》中,Ron的魔杖因为坐他老爸的Flying Car撞到了打人柳,不幸被打断了,从此之后,他的魔杖的魔力就大大减少,甚至没办法执行他施的魔咒,这为Ron带来了不少的烦恼。这天上魔药课,Snape要他们每人配置一种魔药(不一定是一样的),Ron因为魔杖的问题,不能完成这个任务,他请Harry在魔药课上(自然是躲过了Snape的检查)帮他配置。现在Harry面前有两个坩埚,有许多种药材要放进坩埚里,但坩埚的能力有限,无法同时配置所有的药材。一个坩埚相同时间内只能加工一种药材,但是不一定每一种药材都要加进坩埚里。加工每种药材都有必须在一个起始时间和结束时间内完成(起始时间所在的那一刻和结束时间所在的那一刻也算在完成时间内),每种药材都有一个加工后的药效。现在要求的就是Harry可以得到最大的药效。
    输入:
    输入文件的第一行有2个整数,一节魔药课的t(1≤t<≤500)和药材数n(1≤n≤100)。
    输入文件第2行到n+1行中每行有3个数字,分别为加工第i种药材的起始时间t1、结束时间t2、(1≤t1≤t2≤t)和药效w(1≤w≤100)。
    输出:
    输出文件medic.out只有一行,只输出一个正整数,即为最大药效。
    样例输入:
    7 4
    1 2 10
    4 7 20
    1 3 2
    3 7 3
    样例输出:
    35
    思路:
    双线程序列动态规划
    有点类似于线段覆盖
    三维数组:f[i][j][k]
    i表示前i个
    j表示锅1选的最后一个是j
    k表示锅2选的最后一个是k

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int maxn=510;
    const int maxx=110;
    struct node
    {
        int l;
        int r;
        int w;
        bool operator < (node tmp)const
        {
            if(l==tmp.l)
            return r<tmp.r;
            return l<tmp.l;
        }
    }a[maxn];
    int n,t,ans,f[maxx][maxn][maxn];
    int main()
    {
        cin>>t>>n;
        for(int i=1;i<=n;i++)
        cin>>a[i].l>>a[i].r>>a[i].w;
        sort(a+1,a+n+1);
        for(int i=1;i<=n;i++)
          for(int j=0;j<i;j++)//0表示不选
            for(int k=0;k<i;k++)
            {
                f[i][j][k]=f[i-1][j][k];
                if(a[i].l>a[j].r)//当前的l大于以前的r,这两个不冲突,所以可以更新
                f[i][i][k]=max(f[i][i][k],f[i-1][j][k]+a[i].w);
                if(a[i].l>a[k].r)//同理
                f[i][j][i]=max(f[i][j][i],f[i-1][j][k]+a[i].w);
                ans=max(ans,f[i][j][i]);ans=max(ans,f[i][i][k]);//更新答案
            }
        cout<<ans;//输出
        return 0;
    }
  • 相关阅读:
    【色彩&职业】识“色”穿衣,个人色调定位体系新概念推荐会_豆瓣
    Pythoner | 你像从前一样的Python学习笔记
    sae-v2ex 一个运行在SAE上的类似v2ex的轻型python论坛
    Micro Python
    【零基础学习服装设计】服装色彩搭配试听课_豆瓣
    【服装设计师之路】灵感的表达:服装效果图(手绘&电脑)_豆瓣
    【布艺DIY】 零基础 做包包 2小时 就OK!_豆瓣
    都市白领个人整体形象打造,想要变美的可以来参加_豆瓣
    【免费】2小时的色彩搭配时尚公开课_豆瓣
    春季心动款外套搭配 彩色小西装令气质飙升
  • 原文地址:https://www.cnblogs.com/cax1165/p/6070929.html
Copyright © 2020-2023  润新知