码迷,mamicode.com
首页 > 其他好文 > 详细

rqnoj 配置魔药

时间:2014-11-15 18:19:48      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   os   sp   for   文件   div   on   

/*
f[i][j] 为两个锅分别前i,和前J的最大价值
*/ 
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int t,n,f[600][600];
struct line
{
       int st,en,wi;
}e[600];
bool cmp(line a,line b)
{
     return a.en<b.en;
}
int main()
{
    scanf("%d%d",&t,&n);
    for(int i=1;i<=n;i++)
    scanf("%d%d%d",&e[i].st,&e[i].en,&e[i].wi);
    sort(e+1,e+1+n,cmp);
    for(int k=1;k<=n;k++)
    {
        for(int i=t;i>=0;i--)
            for(int j=t;j>=0;j--)
            {
                if(i>=e[k].en)
                f[i][j]=max(f[i][j],f[e[k].st-1][j]+e[k].wi);
                if(j>=e[k].en)
                f[i][j]=max(f[i][j],f[i][e[k].st-1]+e[k].wi);
            }
    }
    printf("%d\n",f[t][t]);
    return 0;
}
    
    

  题目描述

【问题描述】

在《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只有一行,只输出一个正整数,即为最大药效。

rqnoj 配置魔药

标签:blog   io   ar   os   sp   for   文件   div   on   

原文地址:http://www.cnblogs.com/a972290869/p/4099707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!