1642: [Usaco2007 Nov]Milking Time 挤奶时间

Time Limit: 5 Sec  Memory Limit: 64 MB

Submit: 590  Solved: 337

[Submit][Status][

id=1642" style="color:blue; text-decoration:none">Discuss]

Description

贝茜是一仅仅很努力工作的奶牛,她总是专注于提高自己的产量。为了产很多其它的奶,她估计好了接下来的N (1 ≤ N ≤ 1,000,000)个小时,标记为0..N-1。 Farmer John 计划好了 M (1 ≤ M ≤ 1,000) 个能够挤奶的时间段。每一个时间段有一个開始时间(0 ≤ 開始时间 ≤ N), 和一个结束时间 (開始时间 <
结束时间 ≤ N), 和一个产量 (1 ≤ 产量 ≤ 1,000,000) 表示能够从贝茜挤奶的数量。Farmer John 从分别从開始时间挤奶,到结束时间为止。每次挤奶必须使用整个时间段。 但即使是贝茜也有她的产量限制。每次挤奶以后,她必须歇息 R (1 ≤ R ≤ N) 个小时才干下次挤奶。

给定Farmer John 计划的时间段。请你算出在 N 个小时内,最大的挤奶的量。

Input

第1行三个整数N,M,R.接下来M行,每行三个整数Si,Ei,Pi.

Output

最大产奶量.

Sample Input

12 4 2

1 2 8

10 12 19

3 6 24

7 10 31

Sample Output

43

HINT

注意:结束时间不挤奶

dp。

依照起始和结束时间排序,然后进行dp:

f[i]表示用前i个挤奶时间最多挤出多少奶。

f[i]=max(f[k]+w[i])  (a[k].e+r<=a[i].s)

注意结束时间不挤奶!

。意味着这里是<=

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
int n,m,r;
struct data
{
int s,e,v;
}a[1005];
int f[1005];
bool cmp(data a,data b)
{
if (a.s==b.s) return a.e<b.e;
return a.s<b.s;
}
int main()
{
scanf("%d%d%d",&n,&m,&r);
for (int i=1;i<=m;i++)
scanf("%d%d%d",&a[i].s,&a[i].e,&a[i].v);
sort(a+1,a+1+m,cmp);
f[1]=a[1].v;
int ans=f[1];
for (int i=2;i<=m;i++)
{
f[i]=a[i].v;
for (int j=1;j<i;j++)
if (a[j].e+r<=a[i].s)
f[i]=max(f[i],f[j]+a[i].v);
ans=max(f[i],ans);
}
cout<<ans<<endl;
return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

【BZOJ 1642】 [Usaco2007 Nov]Milking Time 挤奶时间的更多相关文章

  1. BZOJ 1642: [Usaco2007 Nov]Milking Time 挤奶时间( dp )

    水dp 先按开始时间排序 , 然后dp. dp( i ) 表示前 i 个时间段选第 i 个时间段的最优答案 , 则 dp( i ) = max( dp( j ) ) + w_i ( 0 < j ...

  2. BZOJ 1642: [Usaco2007 Nov]Milking Time 挤奶时间

    Description 贝茜是一只非常努力工作的奶牛,她总是专注于提高自己的产量.为了产更多的奶,她预计好了接下来的N (1 ≤ N ≤ 1,000,000)个小时,标记为0..N-1. Farmer ...

  3. bzoj 1642: [Usaco2007 Nov]Milking Time 挤奶时间【dp】

    这不就是个n方dp吗--看了眼洛谷题解简直神仙打架 我全程没用到n-- 把休息时间并入产奶时间,注意"结束时间不挤奶",所以ei=ei+r-1,注意这个-1! 然后按r排序,设f[ ...

  4. 1642: [Usaco2007 Nov]Milking Time 挤奶时间

    1642: [Usaco2007 Nov]Milking Time 挤奶时间 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 582  Solved: 33 ...

  5. 1642: [Usaco2007 Nov]Milking Time 挤奶时间(dp)

    1642: [Usaco2007 Nov]Milking Time 挤奶时间 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 935  Solved: 55 ...

  6. 【BZOJ】1642: [Usaco2007 Nov]Milking Time 挤奶时间(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1642 果然没能仔细思考是不行的.. 以后要静下心来好好想,不要认为不可做..... 看了题解... ...

  7. BZOJ1642: [Usaco2007 Nov]Milking Time 挤奶时间

    1642: [Usaco2007 Nov]Milking Time 挤奶时间 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 525  Solved: 30 ...

  8. 【动态规划】bzoj1642 [Usaco2007 Nov]Milking Time 挤奶时间

    区间按左端点排序,dp. #include<cstdio> #include<algorithm> using namespace std; #define N 1001 st ...

  9. BZOJ 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏( floyd )

    直接floyd.. ---------------------------------------------------------------------------- #include<c ...

随机推荐

  1. POJ3071-Football(概率DP+滚动数组)

    Football Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2769   Accepted: 1413 Descript ...

  2. vim经常使用命令总结

    vim 选择文本,删除,复制,粘贴   文本的选择,对于编辑器来说,是非常主要的东西,也常常被用到,总结例如以下: v    从光标当前位置開始,光标所经过的地方会被选中,再按一下v结束. V     ...

  3. 利用Perf4j 对java项目进行性能监控

    Perf4j 可以对自定义监控范围的java代码进行日志记录,再经统计分析生成所需性能数据.Perf4j 提供了对常用日志工具log4j的扩展以方便与产品集成,它产生的性能数据可被用于生成可视化的性能 ...

  4. Ubuntu 12.04更新源

    源地址:http://www.cnblogs.com/eastson/archive/2012/08/24/2654163.html 1.首先备份Ubuntu12.04源列表 sudo cp /etc ...

  5. UVa 11988 - Broken Keyboard (a.k.a. Beiju Text) 题解

    刘汝佳的题目,悲剧文本 -_-||| 这里使用vector<string>容器倒置记录数据,然后从后面输出就能够了. 难度就是不知道这种文档究竟哪里是開始输出,故此使用动态管理内存的容器比 ...

  6. HDU 4028 The time of a day STL 模拟题

    暴力出奇迹.. #include<stdio.h> #include<iostream> #include<algorithm> #include<vecto ...

  7. 2-13. 平均两个有序序列(25)(ZJU_PAT 名单 | 排列 )

    主题链接:http://pat.zju.edu.cn/contests/ds/2-13 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A0, A1-AN-1的中位 ...

  8. Python 收集Twitter时间序列数据

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-18 @author: guaguastd @name: c ...

  9. Knockout应用开发指南 第二章:监控属性(Observables)

    原文:Knockout应用开发指南 第二章:监控属性(Observables) 关于Knockout的3个重要概念(Observables,DependentObservables,Observabl ...

  10. cocos2dx 3.1从零学习(六)——CocosStudio(VS2013project导入及环境设置)

    导入libCocosStudio.libExtensions.libGUI 新建的project例如以下图: 加入现有项目 右键解决方式.例如以下操作: watermark/2/text/aHR0cD ...