poj 3616 Milking Time

原创 2012年03月25日 18:59:29

dp题。

/*
POJ: 3616 Milking Time
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>

#define M 1005

using namespace std;

struct Interval {
    long long start, end;
    long long eff;
    
    bool operator < (const struct Interval &t) const {
        if(start == t.start)
            return end < t.end;
        else
            return start < t.start;
    }
}inter[M];

long long dp[M];
long n, r;
int m;

void DyP()
{
    for(int i = 0; i < m; i++)
        dp[i] = inter[i].eff;
    
    for(int i = 1; i < m; i++) {
        for(int j = 0; j < i; j++) {
            if(inter[i].start - inter[j].end >= r) {
                dp[i] = max(dp[j] + inter[i].eff, dp[i]);
            }
        }
    }
}

int main()
{
    //freopen("data.in", "rb", stdin);
    
    while(scanf("%ld%d%ld", &n, &m, &r) != EOF) {
        for(int i = 0; i < m; i++) {
            cin >> inter[i].start >> inter[i].end >> inter[i].eff;
        }
        
        sort(inter, inter + m);
        
        DyP();
        
        long long res = 0;
        for(int i = 0; i < m; i++)
            res = max(res, dp[i]);
        cout << res << endl;
    }
    
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

poj 3616 Milking Time dp+树状数组

数状数组哭了:我本来是搞区间和的,怎么被用来搞rmq了T^T。。。

POJ3616 milking time 首次做没注意TLE了- -

Milking Time Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4057   Accepted: 169...

Milking Time (poj 3616 简单DP)

题意:给个时间长度n,m个工作时间段和每个时间段能完成的工作量,一次只能做一个工作并且一旦开始做就要把它做完,要求选择的两个工作时间段之间至少相差r时间(中间需要休息嘛)求选择那些工作n时间内能完成的...

poj 3616 Milking Time DP

还是一道《挑战程序设计竞赛》上的基础题目 题目大意: 给一头奶牛挤奶,一共在N时间内,奶牛能下M次奶,但是每次挤完,都要休息R分钟才能接着挤,每次下的奶的数量不一样,给出每次下奶的时间段,和下奶量...

挑战练习题2.3动态规划 poj3616Milking Time dp

题目链接:http://poj.org/problem?id=3616题意:奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段可以挤奶,时间段f,t内Bessie能挤到的牛奶量e。奶牛产奶后需要...

[dp]poj 3616 Milking Time 带权重的区间dp

Milking Time Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5607   Accepted: 234...

POJ-3616-Milking Time

这个题的意思是说要对一些奶牛进行挤牛奶操作,每个奶牛挤牛奶的时间是一段区间,若开始挤牛奶那么就必须在整个区间对这头奶牛挤牛奶,然后每挤完一头奶牛那么需要强制休息r分钟,然后对于每头奶牛挤奶可以得到一定...

POJ 3616 Milking Time 动态规划

http://poj.org/problem?id=3616 题意:一个奶牛在0~N时间段内可被取奶,每次挤奶以后必须休息至少R分钟才能下次继续挤奶。有M次可以挤奶的时间段,每次取奶对应三个值:开始...

POJ3616——Milking Time

Milking Time Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4964   A...

POJ3616——Milking Time(动态规划)

题目链接        这道题感觉有点像任务调度,(由于智商感人)还是看别人的题解做的。题目要求获得更多的牛奶,但区间又不能重叠,所以状态转移函数dp[i]=max(dp[i],dp[j]+s[...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)