[USACO07NOV]挤奶的时间Milking Time

2021年09月15日 阅读数:5
这篇文章主要向大家介绍[USACO07NOV]挤奶的时间Milking Time,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

https://daniu.luogu.org/problemnew/show/2889node

 

按右端点从小到大排序后DPios

dp[i] 到第i个时间段的最大产奶量git

不能按左端点排序,第i段由第j段更新时,第j段可能没挤奶,i,j都处于第k(k<j)段以后的休息时间app

 

#include<cstdio>
#include<iostream>
#include<algorithm>

using namespace std;

#define N 1001

int dp[N];

struct node
{
    int l,r,w;
}e[N];

void read(int &x)
{
    x=0; char c=getchar();
    while(!isdigit(c)) c=getchar();
    while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
}

bool cmp(node p,node q)
{
    return p.r<q.r;
}

int main()
{
    int n,m,R;
    read(n); read(m); read(R);
    for(int i=1;i<=m;++i) read(e[i].l),read(e[i].r),read(e[i].w);
    sort(e+1,e+m+1,cmp);
    for(int i=1;i<=m;++i)
    {
        dp[i]=max(dp[i-1],e[i].w);
        for(int j=1;j<i;++j)
            if(e[j].r+R<=e[i].l) 
              dp[i]=max(dp[j]+e[i].w,dp[i]);
    }
    cout<<dp[m];
}

 

 

 

 

题目描述

Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that she decides to schedule her next N (1 ≤ N ≤ 1,000,000) hours (conveniently labeled 0..N-1) so that she produces as much milk as possible.ide

Farmer John has a list of M (1 ≤ M ≤ 1,000) possibly overlapping intervals in which he is available for milking. Each interval i has a starting hour (0 ≤ starting_houri ≤ N), an ending hour (starting_houri < ending_houri ≤ N), and a corresponding efficiency (1 ≤ efficiencyi ≤ 1,000,000) which indicates how many gallons of milk that he can get out of Bessie in that interval. Farmer John starts and stops milking at the beginning of the starting hour and ending hour, respectively. When being milked, Bessie must be milked through an entire interval.spa

Even Bessie has her limitations, though. After being milked during any interval, she must rest R (1 ≤ R ≤ N) hours before she can start milking again. Given Farmer Johns list of intervals, determine the maximum amount of milk that Bessie can produce in the N hours.rest

奶牛Bessie在0~N时间段产奶。农夫约翰有M个时间段能够挤奶,时间段f,t内Bessie能挤到的牛奶量e。奶牛产奶后须要休息R小时才能继续下一次产奶,求Bessie最大的挤奶量。排序

输入输出格式

输入格式:three

 

  • Line 1: Three space-separated integers: N, M, and Rci

  • Lines 2..M+1: Line i+1 describes FJ's ith milking interval withthree space-separated integers: starting_houri , ending_houri , and efficiencyi

 

输出格式:

 

  • Line 1: The maximum number of gallons of milk that Bessie can product in the N hours

 

输入输出样例

输入样例#1:  复制
12 4 2
1 2 8
10 12 19
3 6 24
7 10 31
输出样例#1:  复制
43
做者: xxy
 
本文版权归做者和博客园共有,转载请用连接,请勿原文转载,Thanks♪(・ω・)ノ。