★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. NYNU_省赛选拔题(10)

    题目描述 Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recog ...

  2. Android(Lollipop/5.0) Material Design(六) 自定义动画

    官网地址:https://developer.android.com/intl/zh-tw/training/material/animations.html 动画在Material设计中,为用户与a ...

  3. List之Distinct()

    针对数组可以用List.Distinct(),可以过滤掉重复的内容. 针对对象中的某个字段只能用Distinct(IEqualityComparer<T>) 用法:  1  public  ...

  4. JQUERY prop与attr差额

    1.  1-9-1之前和之后之间的差 <html> <script src="Js/jquery-1.9.0.js" type="text/javasc ...

  5. ArcPad 10 的安装和部署

    ArcPad它被安装在一个手持装置或业内外的移动终端ArcGIS产品,那ArcPad这是Esri软件产品,哦,不是硬件. 虽然优于ArcGIS Desktop功能复杂的乐趣,是对于野外作业.数据採集等 ...

  6. HDU 4303 Hourai Jeweled 树dp 所有权利和航点 dfs2次要

    意甲冠军: long long ans = 0; for(int i = 1; i <= n; i++) for(int j = i+1; j <= n; j++) ans += F(i, ...

  7. C#二维码生成与解码

    [窗体效果图] [程序源代码] using System; using System.Collections.Generic; using System.ComponentModel; using S ...

  8. 【软测试】(两)计算机组成原理-cpu

    cpu,中文名称中央处理单元,central processing unit.系统的核心,用于数据的处理,算术以及逻辑运算和控制程序的运行. 组成 运算器 从字面上就能够理解到.运算器主要用来对于逻辑 ...

  9. NET中异常处理的最佳实践

    NET中异常处理的最佳实践 本文翻译自CodeProject上的一篇文章,原文地址. 目录 介绍 做最坏的打算 提前检查 不要信任外部数据 可信任的设备:摄像头.鼠标以及键盘 “写操作”同样可能失效 ...

  10. jrtplib的使用

    JRTPLIB库的使用 文档: http://research.edm.uhasselt.be/jori/jrtplib/documentation/index.html 一些介绍: http://d ...