1.2.1 Milking Cows 挤牛奶

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 554  Solved: 108
[Submit][Status][Forum]

Description

三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻。第二个农民在700时刻开始,在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300时刻(从1200时刻到1500时刻)。 你的任务是编一个程序,读入一个有N个农民(1 <= N <= 5000)挤N头牛的工作时间列表,计算以下两点(均以秒为单位): 最长至少有一人在挤奶的时间段。 最长的无人挤奶的时间段。(从有人挤奶开始算起)

Input

Line 1: 一个整数N。 Lines 2..N+1: 每行两个小于1000000的非负整数,表示一个农民的开始时刻与结束时刻。

Output

一行,两个整数,即题目所要求的两个答案。

Sample Input

3
300 1000
700 1200
1500 2100

Sample Output

900 300

  经典贪心题。

  对于最长的挤奶时间,需要控制的是挤奶结束时间最晚的那个区间和那个结束点,如果下一个区间是在这个点之前结束的,直接continue就好,它对答案没有影响,如果是在这个点之前而且该区间的开始时间要小于这个点的话,就要更新答案和最后结束的那个点,否则,就说明一段连续的挤奶时间结束,和之前存储的最大的挤奶时间进行比较。

  对于最长的无人挤奶的时间,也是查不多的思想。

但是,还会有一些细节需要注意,我在代码中给出标识。

 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<deque>
#include<map>
#include<iostream>
using namespace std;
typedef long long LL;
const double pi=acos(-1.0);
const double e=exp();
//const int MAXN =2e5+10;
const int N = ; struct inteval
{
LL head;
LL tail;
} inteval[N];
LL check[N]; bool cmp(struct inteval a,struct inteval b)
{
if(a.head==b.head)
return a.tail<b.tail;
return a.head<b.head;
}
int main()
{
LL n,i,p,j;
LL work=,rest=; scanf("%lld",&n);
for(i=; i<n; i++)
{
scanf("%lld%lld",&inteval[i].head,&inteval[i].tail);
}
sort(inteval,inteval+n,cmp); LL a,b,mid=inteval[].tail-inteval[].head; work=mid=inteval[].tail-inteval[].head;
b=inteval[].tail;
for(i=; i<n; i++)
{
a=inteval[i].tail;
if(a<=b)
continue;
else if(inteval[i].head<=b)
{
mid+=a-b;
b=a;
}
else
{
if(mid>work)
work=mid;
mid=a-inteval[i].head;
b=inteval[i].tail; //注意 最晚结束的那个点在这里不应该赋为零
} }
if(mid>work) //注意 最后还要再比较一次
work=mid; b=inteval[].tail;
for(i=;i<n;i++)
{
a=inteval[i].head;
if(b>=a)
{
if(inteval[i].tail>b)
b=inteval[i].tail;
continue;
}
else
{
mid=a-b;
b=inteval[i].tail;
if(mid>rest)
rest=mid;
}
}
// 注意 找最长的无人挤奶的时间段最后不能再比一次
printf("%lld %lld\n",work,rest); return ;
}

  

Milking Cows 挤牛奶的更多相关文章

  1. Milking Cows 挤牛奶 USACO 排序 模拟

    1005: 1.2.1 Milking Cows 挤牛奶 时间限制: 1 Sec  内存限制: 128 MB提交: 15  解决: 9[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 1 ...

  2. 洛谷P1204 [USACO1.2]挤牛奶Milking Cows

    P1204 [USACO1.2]挤牛奶Milking Cows 474通过 1.4K提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 请各位帮忙看下程序 错误 ...

  3. 【题解】Luogu P1204 [USACO1.2]挤牛奶Milking Cows

    原题传送门:P1204 [USACO1.2]挤牛奶Milking Cows 实际是道很弱智的题目qaq 但窝还是觉得用珂朵莉树写会++rp(窝都初二了,还要考pj) 前置芝士:珂朵莉树 窝博客里对珂朵 ...

  4. 【洛谷P1204】【USACO1.2】挤牛奶Milking Cows

    P1204 [USACO1.2]挤牛奶Milking Cows 题目描述 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶.第一个农民在300秒(从5点开始计时)给他的牛挤奶,一直到1000秒.第二个 ...

  5. codeforce ---A. Milking cows

    A. Milking cows time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  6. USACO Section 1.2 Milking Cows 解题报告

    题目 题目描述 有3个农夫每天早上五点钟便起床去挤牛奶,现在第一个农夫挤牛奶的时刻为300(五点钟之后的第300个分钟开始),1000的时候结束.第二个农夫从700开始,1200结束.最后一个农夫从1 ...

  7. Milking Cows

    Milking Cows Three farmers rise at 5 am each morning and head for the barn to milk three cows. The f ...

  8. Cogs 465. 挤牛奶

    465. 挤牛奶 ★   输入文件:milk2.in   输出文件:milk2.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 三个农民每天清晨5点起床,然后去牛棚给3 ...

  9. codevs——1385 挤牛奶

    1385 挤牛奶 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解  查看运行结果     题目描述 Description 三个农民每天清 ...

随机推荐

  1. QtCharts模块在QtWideget中图表绘制(非QML)

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QtCharts模块在QtWideget中图表绘制(非QML)     本文地址:http:/ ...

  2. 爬虫学习之-sqlite3

    SQLlte数据类型 SQLite能保存什么样的数据类型 ?? 可以保存空值.整数.浮点数.字符串和blob. 什么是blob ?? 是二进制大对象.例如图片.音乐.zip文件. 什么是游标 ?? 游 ...

  3. 修改mac的hosts文件

    第一步:请先打开 Mac 系统中的 Finder 应用,接下来请按快捷键组合 Shift+Command+G 三个组合按键,并输入 Hosts 文件的所在路径:/etc/hosts , 随后即可在 F ...

  4. win7仿win98电脑主题

    http://ys-d.ys168.com/599631823/S7hMfgo3M382J764IOJ8/plus98_for_windows_7_by_ansonsterling.zip

  5. 【Nginx】优化配置

    nginx优化 突破十万并发 一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1.  worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它 ...

  6. Bootstrap-tagsinput标系统使用心得

    最近工作中由于需求使用到了Bootstrap-tagsinput标系统,我的需求是: 1)能够从后台数据库获取标签信息展示到前端页面: 2)能够实现输入标签添加到后台,并ajax刷新页面: 3)能够实 ...

  7. BZOJ 2299 向量(裴蜀定理)

    题意:给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x ...

  8. 【Mybatis】Mybatis的sql模糊查询

    这个网站中有很多方法.https://code.google.com/p/mybatis/issues/detail?id=85 自己试验了如下的方法. 1.  参数中直接加入%% param.set ...

  9. 【数据库_Postgresql】实体类映射问题之不执行sql语句

    后台controller到dao都没问题,前台页面接收的是一个实体类对象,在service层接收的也是对象,传入mapper里面的也是对象,没有用map,但是打印台却不执行sql语句,也没有明显错误提 ...

  10. 51nod 1292 字符串中的最大值V2(后缀自动机)

    题意: 有一个字符串T.字符串S的F函数值可以如下计算:F(S) = L * S在T中出现的次数(L为字符串S的长度).求所有T的子串S中,函数F(S)的最大值. 题解: 求T的后缀自动机,然后所有每 ...