【USACO题库】1.2.1 Milking Cows挤牛奶

简介: 【USACO题库】1.2.1 Milking Cows挤牛奶

   一开始认为过不了,后来交就AC了。

1007. 【USACO题库】1.2.1 Milking Cows挤牛奶
(File IO): input:milk.in output:milk.out

题目描述

三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻。第二个农民在700时刻开始,在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300秒(从1200时刻到1500时刻)。

你的任务是编一个程序,读入一个有N个农民(1 <= N <= 5000)挤N头牛的工作时间列表,计算以下两点(均以秒为单位):

最长至少有一人在挤奶的时间段。

最长的无人挤奶的时间段。

输入

第一行一个整数N。

接下来N+1行,每行两个小于1000000的非负整数,表示一个农民的开始时刻与结束时刻。

输出

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

样例输入

3

300 1000

700 1200

1500 2100

样例输出

900 300


先来看道题:

马路旁的树

 

题目描述

某学校有一条“春秋大道”,其道路两旁对称地栽有树木。现在为了保证整体的美观,需要移除其中的一些树。因此有必要统计,在移除一些树木之后,春秋大道上还有多少棵树。

为了简化问题,把春秋大道想象成一条数轴,数轴坐标为1 ~ n。

尚未进行移除操作时,每个坐标点上有两棵树。

给一次移除操作(x y),将会把[x,y]区间上所有的树移除。

最终需要统计,在所有移除操作完成以后,还剩有多少棵树。

输入

第一行为一个整数n( 1<= n <= 1000 )。

第二行为一个整数k( 1<= k <= 100),代表移除操作的个数。

下面k行,每行有两个整数x,y ( 1 <= x < =y <= n),中间有一个空格分隔开,代表把[x,y]区间上的所有树移除。

输出

输出所有移除操作完成之后,道路两旁还剩树的数目总数。

注意:是道路两旁!

样例输入

5

2

1 3

4 5

样例输出

0

这两道题,有异曲同工之妙。

思路:

只需要一个a数组, 比如说:100~200 那么a[100]~a[199]都标记为1,其余为零, 以此类推,当所有的时间都标记完了之后,我们就可以开始统计了。(标记法)

代码如下:

#include<bits/stdc++.h>
using namespace std; 
const int maxn=1000010; 
bool a[maxn]; int t=0; 
int n,ans1=0,ans2=0; int x,y;
int maxx=0,minx=maxn; 
int main() 
{ 
  freopen("milk.in","r",stdin);
  freopen("milk.out","w",stdout);
  scanf("%d",&n); 
  for(int i=1;i<=n;i++)
  { 
      scanf("%d",&x); 
    scanf("%d",&y); 
    minx=min(x,minx); 
    maxx=max(y,maxx); 
    for(int j=x;j<y;i++) a[j]=1; 
  }
  int p=minx; 
  int q=maxx; 
  for(int i=p;i<=q;i++) 
  { 
    if(a[i]==1) t++; 
    else
    {
      ans1=max(ans1,t);
      t=0; 
    }
  } 
  for(int i=p;i<=q;i++) 
  { 
    if(a[i]==0)t++; 
    else 
    { 
      ans2=max(ans2,t); 
      t=0; 
    }  
  } 
  cout<<ans1<<" "<<ans2<<endl;
}

image.gif


相关文章
|
6天前
洛谷P1204 or SSL-1088 USACO 1.2 挤牛奶
洛谷P1204 or SSL-1088 USACO 1.2 挤牛奶
|
6天前
|
C++
【PTA】L1-035 情人节(C++)
【PTA】L1-035 情人节(C++)
39 0
【PTA】L1-035 情人节(C++)
|
6天前
牛客小bai月赛39 F 孤独(dp)
牛客小bai月赛39 F 孤独(dp)
13 0
PTA 1092 最好吃的月饼
月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种。
81 0
|
测试技术
PTA 1004 成绩排名
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
75 0
|
存储
【LeetCode】这儿童节的糖不好吃啊
【LeetCode】这儿童节的糖不好吃啊
120 0
【LeetCode】这儿童节的糖不好吃啊
|
Java
HDU - 2018杭电ACM集训队单人排位赛 - 3 - Problem H. Dominoes
HDU - 2018杭电ACM集训队单人排位赛 - 3 - Problem H. Dominoes
105 0
|
存储 测试技术