1642: [Usaco2007 Nov]Milking Time 挤奶时间
时间:2022-05-07
本文章向大家介绍1642: [Usaco2007 Nov]Milking Time 挤奶时间,主要内容包括1642: [Usaco2007 Nov]Milking Time 挤奶时间、Description、Input、Output、Sample Input、Sample Output、HINT、Source、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
1642: [Usaco2007 Nov]Milking Time 挤奶时间
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 582 Solved: 331
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
注意:结束时间不挤奶
Source
题解:好逗啊,弄来弄去原来是快排写错了TT,害得我WA了N次。。。别的嘛,按照开始时间排序后,然后DP之。。。
1 var
2 i,j,k,l,m,n,ans,r:longint;
3 a:array[0..2000,1..3] of longint;
4 f:array[0..2000] of longint;
5 procedure swap(var x,y:longint);
6 var z:longint;
7 begin
8 z:=x;x:=y;y:=z;
9 end;
10 function max(x,y:longint):longint;
11 begin
12 if x>y then max:=x else max:=y;
13 end;
14 procedure sort(l,r:longint);
15 var
16 i,j,x,y:longint;
17 begin
18 i:=l;
19 j:=r;
20 x:=a[(l+r) div 2,1];
21 repeat
22 while a[i,1]<x do inc(i);
23 while a[j,1]>x do dec(j);
24 if i<=j then
25 begin
26 swap(a[i,1],a[j,1]);
27 swap(a[i,2],a[j,2]);
28 swap(a[i,3],a[j,3]);
29 inc(i);dec(j);
30 end;
31 until i>j;
32 if l<j then sort(l,j);
33 if i<r then sort(i,r);
34 end;
35 begin
36 readln(n,m,r);
37 for i:=1 to m do
38 begin
39 readln(a[i,1],a[i,2],a[i,3]);
40 a[i,2]:=a[i,2]+r;
41 end;
42 sort(1,m);
43 for i:=1 to m do
44 begin
45 f[i]:=a[i,3];
46 for j:=1 to m-1 do
47 begin
48 if a[i,1]>=a[j,2] then
49 f[i]:=max(f[i],f[j]+a[i,3]);
50 end;
51 ans:=max(ans,f[i]);
52 end;
53 writeln(ans);
54 end.
- 如何在 Scala 中科学地操作 collection(一)集合类型与操作
- Redis 一二事(2) - 在spring中使用jedis 连接调试单机redis以及集群redis
- 用 Python 制作微信好友个性签名词云图
- 用 Python 查看微信好友位置信息
- 用 Python 分析微信好友性别比例
- FreeMarker静态模板结合spring展示
- 源码阅读之Vector
- 用 Python 实现聊天机器人
- 用 Python 实现雪花效果
- CentOS6.8_Spark单机部署
- 3.2 Spark调度机制
- 正则表达式中零宽断言的用法
- Spark ReadmeApache Spark
- Apache Spark快速入门
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 您可能不需要使用Vue 3的Vuex
- 谈一谈若干的K-V NoSQL应用:LevelDB、Redis、Tair、RockesDB
- 高通量数据中批次效应的鉴定和处理(六)- 直接校正表达矩阵
- Go viper 配置文件读取工具
- spring security默认访问权限判定源码
- Springboot+mybatis最简单的增删改查写法
- Head First设计模式——观察者模式
- spring security oauth2 资源服务/客户端无法正确获取权限
- EXTJS grid.column.renderer绑定失效
- Head First设计模式——装饰者模式
- spring security oauth2 资源服务器WebAsyncTask/DeferredResult接口调用报错InsufficientAuthenticationException
- Head First设计模式——简单工厂、工厂、抽象工厂
- Golang | 简介channel常见用法,完成goroutin通信
- Head First设计模式——单例模式
- 【日拱一卒】链表——两个有序的链表合并