★Milking Cows 挤牛奶

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

INPUT FORMAT

Line 1:  一个整数 N. Lines 2..N+1:  每行两个小于 1000000 的非负整数,表示一个农民的开始时刻与结束时刻.
SAMPLE INPUT(file milk2.in)
3
300 1000
700 1200
1500 2100
OUTPUT FORMAT
一行,两个整数,即题目所要求的两个答案.
SAMPLE OUTPUT(file milk2.out)
900 300

#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
int a[1000000],n,x,y;
int MAX=0,maxn=0,minn=0,MIN=0,first=123456,end=0;
int main(){
int i,j,s,t,m;
memset(a,0,sizeof(a));
freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); scanf("%d",&n);
for (i=0;i<n;i++){
scanf("%d%d",&x,&y);
for (j=x;j<y;j++){
a[j]=1;
}
if (x<=first) first=x;
if (y>=end) end=y; }
for (i=first;i<end;i++){
if (a[i]==1){
maxn++;
if (maxn>=MAX) MAX=maxn;
}
if (a[i]==0){
maxn=0;
minn++;
if (minn>=MIN) MIN=minn;
}
else minn=0;
}
printf("%d %d\n",MAX,MIN); return 0;
} SOURCE

  

刚开始看到的第一眼以为上线段树+部分优化
但40大神表示那有可能会超时,之后就向我介绍了某种很简便的方法...学习了~~ 如果用在这题上的话是这样的,用一个数组模拟,如果在某段时间有人的话,那段时间a[i]=1;最后一遍过就可以了 40给我讲的例子是类似的,只不过那个是问最多人的时间段
改成a[i]++就可以了 MARK

  

usaco 1.2.1(指针技巧)的更多相关文章

  1. 长乐集训2012.7.11 happy(指针技巧的运用)

    题1  Noip的快乐 (happy.pas/c/cpp) [问题描述] 终于到了一年一度的Noip比赛了,多么令人期待和兴奋的一天!其实,人们最高兴的还不是遇见老朋友,而是结交新朋友.可是结交新的朋 ...

  2. struct 类型指针技巧

    此类型对于两种结构的查找和删除都十分方便,实际项目中也常常用到.

  3. 滑动窗口(Sliding Window)技巧总结

    什么是滑动窗口(Sliding Window) The Sliding Problem contains a sliding window which is a sub – list that run ...

  4. 2013集训.DAY21.A

    随便点了一套刷,这套质量挺棒的,学了不少的东西,并且碰到了很久都没有打的题目 T1 card [指针技巧] 题1 集卡片 [问题描述] lzh小时候很喜欢收集卡片,他经常要去商店购买新到的卡片. 商店 ...

  5. C 封装一个简单二叉树基库

    引文 今天分享一个喜欢佩服的伟人,应该算人类文明极大突破者.收藏过一张纸币类型如下 那我们继续科普一段关于他的简介 '高斯有些孤傲,但令人惊奇的是,他春风得意地度过了中产阶级的一生,而  没有遭受到冷 ...

  6. [leetcode]Reorder List @ Python

    原题地址:http://oj.leetcode.com/problems/reorder-list/ 题意: Given a singly linked list L: L0→L1→…→Ln-1→Ln ...

  7. [leetcode]Sort List @ Python

    原题地址:http://oj.leetcode.com/problems/sort-list/ 题意:链表的排序.要求:时间复杂度O(nlogn),空间复杂度O(1). 解题思路:由于题目对时间复杂度 ...

  8. 【Cracking the Code Interview(5th edition)】二、链表(C++)

    链表结点类型定义: class Node { public: ; Node *next = nullptr; Node(int d) { data = d; } }; 快行指针(runner)技巧: ...

  9. leetcode: 链表2

    1. copy-list-with-random-pointer(拷贝一个带随机指针的链表) A linked list is given such that each node contains a ...

随机推荐

  1. CSS+DIV+JQuery实际的视频汇总

    在牛腩中学习过CSS和DIV.在JS中学习过CSS+JS 封装,在这里又回想了一遍,也作为查漏补缺,也算比較系统的复习了一遍吧. css核心内容主要包含四个方面:标准流.盒子模型,浮动和定位,而在B/ ...

  2. 数学思想方法-sasMEMO(17)

    SAS日期及时间格式 data  _null_;input mydate YYMMDD10.;put mydate YYMMDDB10.;put mydate YYMMDDC10.;put mydat ...

  3. Nyoj 吝啬的国度(图论&&双DFS)

    描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你 ...

  4. unix cd使用命令

    [语法]:     cd   [夹] [说明]:此命令用于工作文件以改变当前的文件夹,使用环境变量没有参数$HOME 作为它的参数,$HOME 路径通常在注册时输入. [抽样]: cd   文件夹 c ...

  5. hdu 1700 Points on Cycle 水几何

    已知圆心(0,0)圆周上的一点,求圆周上另外两点使得三点构成等边三角形. 懒得推公式,直接用模板2圆(r1=dist,r2=sqrt(3)*dist)相交水过 #include<cstdio&g ...

  6. Spring搭建MVC WEB项目[转]

    原文链接:http://blog.csdn.net/initphp/article/details/8208349 1.创建一个web项目 2.假设,我们已经安装完毕Spring所需要的依赖包,以及一 ...

  7. CII-2.4指针常量和常量指针

    #define T Stack_T typedef struct T *T; struct T { int count; struct elem { void *x; struct elem *lin ...

  8. UVA Getting in Line

    题目例如以下: Getting in Line  Computer networking requires that the computers in the network be linked. T ...

  9. 响应式web前端框架Foundation & Bootstrap 对比

    Foundation & Bootstrap都是易用.强大且灵活的前端框架,用于构建基于任何设备上的 Web 应用.提供流式布局,及多种 js UI 组件,如导航.表单.按钮.Tabs 等等. ...

  10. Android ProgressBar 反向进度条/进度条从右到左走

    近期的项目,有个需求须要使用条状图显示比例,而且右对齐,见下图: 我想到了使用进度条,这样不就不须要在代码动态绘制条状了,省了非常多活. 那么进度条如何从右向左显示呢? 方案一: 将ProgressB ...