配置魔药 【问题描述】

在《Harry Potter and the Chamber of Secrets》中,Ron的魔杖因为坐他老爸的Flying

Car撞到了打人柳,不幸被打断了,从此之后,他的魔杖的魔力就大大减少,甚至没办法执行他施的魔咒,这为Ron带来了不少的烦恼。这天上魔药课,Snape要他们每人配置一种魔药(不一定是一样的),Ron因为魔杖的问题,不能完成这个任务,他请Harry在魔药课上(自然是躲过了Snape的检查)帮他配置。现在Harry面前有两个坩埚,有许多种药材要放进坩埚里,但坩埚的能力有限,无法同时配置所有的药材。一个坩埚相同时间内只能加工一种药材,但是不一定每一种药材都要加进坩埚里。加工每种药材都有必须在一个起始时间和结束时间内完成(起始时间所在的那一刻和结束时间所在的那一刻也算在完成时间内),每种药材都有一个加工后的药效。现在要求的就是Harry可以得到最大的药效。

【输入文件】(medic.in)

输入文件的第一行有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)

输出文件medic.out只有一行,只输出一个正整数,即为最大药效。

【输入样例】

7 4

1 2 10

4 7 20

1 3 2

3 7 3

【输出样例】

35

【注释】

本题的样例是这样实现的:第一个坩埚放第1、4种药材,第二个坩埚放第2、3种药材。这样最大的药效就为10+20+2+3=35。

【数据规模】

对于30%的数据

1<=t<=500

1<=n<=15

1<=w<=100

1<=t1<=t2<=t

对于100%的数据

1<=t<=500

1<=n<=100

1<=w<=100

1<=t1<=t2<=t

/*
DP.
这题一开始想前i个物品
1锅放j个2锅放k个的最优值.
然后不知道最后是谁放的
没法通过状态转移(就得开5维了orz)
f[i][j][k]直接表示
前i个物品1锅最后放j 2锅最后放k的最优值.
先排一遍序不然乱序转移没法搞.
然后跑背包就可以了..
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#define MAXN 101
using namespace std;
int f[MAXN][MAXN][MAXN],n,m,ans;
struct data{int x,y,z;}s[MAXN];
bool cmp(const data &x,const data &y)
{
if(x.x!=y.x)
return x.x<y.x;
return x.y<y.y;
}
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
return x*f;
}
int main()
{
m=read();n=read();
for(int i=1;i<=n;i++)
s[i].x=read(),s[i].y=read(),s[i].z=read();
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++)
for(int j=0;j<i;j++)
for(int k=0;k<i;k++)
{
if(s[j].y<s[i].x)
f[i][i][k]=max(f[i-1][i][k],f[i-1][j][k]+s[i].z);
if(s[k].y<s[i].x)
f[i][j][i]=max(f[i-1][j][i],f[i-1][j][k]+s[i].z);
ans=max(ans,max(f[i][i][k],f[i][j][i]));
}
printf("%d",ans);
return 0;
}

配置魔药(DP)的更多相关文章

  1. 配置魔药 [NOIP模拟] [DP] [费用流]

    问题描述在<Harry Potter and the Chamber of Secrets>中,Ron 的魔杖因为坐他老爸的 Flying Car 撞到了打人柳,不幸被打断了,从此之后,他 ...

  2. rnqoj-99-配置魔药-dp

    比较好的题目~~ dp[j][k]: 第一个容器在第i秒和第二个容器在第j秒,所产生的最大魔力. if(num[i].t2<=j)dp[j][k]=max(dp[j][k],dp[num[i]. ...

  3. IT6563替代芯片|DP转HDMI 2.0音视频讯号转换芯片|CS5263Capstpne

    IT6563替代芯片|CS 5263|4LAN DP转HDMI 2.0音视频讯号转换芯片IT6563是一款4LAN EDP转HDMI2.0 HDMI2.0转换器芯片.IT6563FN结合Display ...

  4. IT6563|4LAN DP转HDMI 4K60HZ /2.0转换方案|CS5263替代IT6563

    IT6563是一款4通道DisplayPort1.2到HDMI 4K60Hz转换器,IT6563结合DisplayPort接收机和HDMI发射机,通过转换功能支持DisplayPort输入和HDMI输 ...

  5. 替代联阳IT6564方案|CS5262替代IT6564|设计DP转HDMI+VGA扩展坞方案

    联阳IT6564:带嵌入式MCU的单芯片4通道DisplayPort1.2到HDMI2.0/VGA转换器 联阳IT6564是一种高性能的单芯片显示端口到HDMI和VGA转换器.IT6564FN结合Di ...

  6. CS5211|DP转LVDS |低成本DP to LVDS Conversion 方案设计

    目前市面上DP转LVDS转换--DP to LVDS Conversion 方案设计有以下: 龙迅LT8911 LT7211.普瑞PS8625.昆泰CH7511等方案,DP换LVDS转换主要是用在一些 ...

  7. noip2017颓废记

    作为一个从初中就开始学信息的蒟蒻,自然要去提高组了~~~ 比赛前day1 跟平常一样在机房颓废着,上午在洛谷看到了站长大人的忠告后,看了看模板题,发现没几个会打的(正常). 下午想一想发现自己的dp垃 ...

  8. 西门子 S7-300 PLC 从入门到精通的100个经典问题

    1:使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息?   使用CPU S7 315F, ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序.而且,您已 ...

  9. AEAI DP V3.6.0 升级说明,开源综合应用开发平台

    AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...

随机推荐

  1. 剑指offer19:按照从外向里以顺时针的顺序依次打印出每一个数字,4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

    1 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印 ...

  2. ES6——入门学习指南

    ES6的简介: ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准,已在2015年6月正式发布了.它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序 ...

  3. 笔记-4:python组合数据类型

    1.字符串(str) 字符串是字符的序列表示, 根据字符串的内容多少分为单行字符串和多行字符串. 单行字符串可以由一对单引号(') 或双引号(")作为边界来表示, 单引号和双引号作用相同. ...

  4. 字典的setdefault()

    setdefault(key, default) 函数 ---有key获取值.没key设置 key:default dict.setdefault(key, default=None) 如果 key ...

  5. linux下mysql数据导入到redis

    自Redis 2.6以上版本起,Redis支持快速大批量导入数据,即Pipe传输.通过将要导入的命令转换为Resp格式,然后通过MySQL的concat()来整理出最终导入的命令集合,以达到快速导入的 ...

  6. 故事板(StoryBoards)和动画(Animations)

    Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations) 正如你所看到的,Blend是一个非常强大的节约时间的设计工具,在Blend ...

  7. Springboot 使用pageHelper实现分页查询

    本文链接:https://blog.csdn.net/qq_35387940/article/details/91530234

  8. service程序改为windows窗体展示

    首先将exe程序文件进行快捷创建.然后就会生成一个 exe -shortCut 程序,然后进入属性中,并且进行修改引用路径,在路径xx.exe 后面加一个空格和/tt,保存,这样就可以正常运行了. 如 ...

  9. css加载没效果,查看网络显示类型为 text/plain 的解决方法

    当请求的css 文件的MIME 类型 为 text/plain 时,文件会当做 .txt 文件来处理,浏览器就会拒绝渲染 产生这样的问题和服务器的配置有关系 在服务器上加上下面两句就好了 搞定

  10. Advanced Installer 开始-程序那里增加,快捷方式、卸载软件、官方网站

    .     这个是效果.