usaco 1.2.1(指针技巧)
★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(指针技巧)的更多相关文章
- 长乐集训2012.7.11 happy(指针技巧的运用)
题1 Noip的快乐 (happy.pas/c/cpp) [问题描述] 终于到了一年一度的Noip比赛了,多么令人期待和兴奋的一天!其实,人们最高兴的还不是遇见老朋友,而是结交新朋友.可是结交新的朋 ...
- struct 类型指针技巧
此类型对于两种结构的查找和删除都十分方便,实际项目中也常常用到.
- 滑动窗口(Sliding Window)技巧总结
什么是滑动窗口(Sliding Window) The Sliding Problem contains a sliding window which is a sub – list that run ...
- 2013集训.DAY21.A
随便点了一套刷,这套质量挺棒的,学了不少的东西,并且碰到了很久都没有打的题目 T1 card [指针技巧] 题1 集卡片 [问题描述] lzh小时候很喜欢收集卡片,他经常要去商店购买新到的卡片. 商店 ...
- C 封装一个简单二叉树基库
引文 今天分享一个喜欢佩服的伟人,应该算人类文明极大突破者.收藏过一张纸币类型如下 那我们继续科普一段关于他的简介 '高斯有些孤傲,但令人惊奇的是,他春风得意地度过了中产阶级的一生,而 没有遭受到冷 ...
- [leetcode]Reorder List @ Python
原题地址:http://oj.leetcode.com/problems/reorder-list/ 题意: Given a singly linked list L: L0→L1→…→Ln-1→Ln ...
- [leetcode]Sort List @ Python
原题地址:http://oj.leetcode.com/problems/sort-list/ 题意:链表的排序.要求:时间复杂度O(nlogn),空间复杂度O(1). 解题思路:由于题目对时间复杂度 ...
- 【Cracking the Code Interview(5th edition)】二、链表(C++)
链表结点类型定义: class Node { public: ; Node *next = nullptr; Node(int d) { data = d; } }; 快行指针(runner)技巧: ...
- leetcode: 链表2
1. copy-list-with-random-pointer(拷贝一个带随机指针的链表) A linked list is given such that each node contains a ...
随机推荐
- nginx.conf 完整的集群配置
###############################nginx.conf 整配置############################### #user nobody; # user 主模 ...
- 为 Oracle Database 开发 WCF Data Services 和 OData 应用程序
为 Oracle Database 开发 WCF Data Services 和 OData 应用程序 本教程包含以下部分: 目的 所需时间 概述 先决条件 创建新的网站项目 ...
- ASP.NET MVC 使用TryUpdateModel 更新的技巧
有使用 ASP.NET MVC 的朋友應該會對於 TryUpdateModel 有一定的認知,他不但可以利用 Metadata 來做欄位的驗證確保資料的正確性,也可以指定更新的條件以及不更新的條件來達 ...
- Net社区虚拟大会
微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新.开源.跨平台 去年 11 月的时候,微软开源了 .NET CoreFX,然后是今年 2 月份的 .NET CoreCL ...
- EF 事物
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- 候选键(unique)
foreign key references 除了关联外键,还可以关联 候选键(unique) 需求 table1 中的 status int 类型 ,表示状态 ,0 未启动 ,1 已启动,2 ...
- 代理模式与Android
代理模式(Proxy) 一. 什么是代理模式 先来看看官方的说法,代理模式就是为其它对象提供一种代理,以控制对这个对象的訪问. 看来这个官方的说法的确有点官方,看了还是让人感觉不点不知所措,还是不 ...
- CSS知识总结之浏览器(持续更新)
web页面浏览器渲染过程 1.解析html文件,并构建DOM树: 在DOM树中,每一个html标签都有一个对应的节点,并且每一个文本也有一个对应 的节点(js的textNode),DOM树的根节点就是 ...
- IOC 容器初始化
WebApi 插件式构建方案:IOC 容器初始化 一般来说,一个现代化的网站加载流程是这样的:程序集加载后,我们会初始化 IOC 容器,以便于接下来解析对象用. 我们插件式的开发,这一步更为重要.这是 ...
- Text Justification 实现两端对齐功能
实现office word中的两端对齐功能. 只有个单词时,右边补齐空格.最后一行每个词间一个空格,整下的空格右边补齐.给定字符串,和每行的字符数L.进行两端对齐输出. 我的思路是写一个函数,给定相应 ...