• CCF 201809-2 买菜


    题目:

      问题描述
        小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]...[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]...[cn,dn]在装车。其中,一个时间段[s, t]表示的是从时刻s到时刻t这段时间,时长为t-s。
        由于他们是好朋友,他们都在广场上装车的时候会聊天,他们想知道他们可以聊多长时间。
    输入格式
        输入的第一行包含一个正整数n,表示时间段的数量。
        接下来n行每行两个数ai,bi,描述小H的各个装车的时间段。
        接下来n行每行两个数ci,di,描述小W的各个装车的时间段。
      输出格式
        输出一行,一个正整数,表示两人可以聊多长时间。
      样例输入
      4
      1 3
      5 6
      9 13
      14 15
      2 4
      5 7
      10 11
      13 14
      样例输出
      3
      数据规模和约定
        对于所有的评测用例,1 ≤ n ≤ 2000, a< b< ai+1,c< d< ci+1,对于所有的i(1 ≤ i ≤ n)有,1 ≤ ai, bi, ci, di ≤ 1000000。

    思路:

      简单题,但是不知道为啥我错了几次,真让人悲伤。设定一个数组当做时间轴,初始化为0,之后如果有人装车,那么时间轴在那段时间上+1,如果二人都在那时候装车,那么那个位置的数应该是2,找到2的数量即可。

    代码:

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cmath>
     4 using namespace std;
     5 
     6 int Num =  1000000;
     7 int time[1000000];
     8 
     9 int main()
    10 {
    11     int n;
    12     cin>>n;
    13     int max=0;
    14 
    15     for(int i=0;i<Num;i++)
    16         time[i]=0;
    17 
    18     for(int i=0;i<n;i++)
    19     {
    20         int a,b;
    21         cin>>a>>b;
    22         if(b>max)
    23             max = b;
    24         for(int j=a;j<b;j++)
    25             time[j]++;
    26     }
    27     for(int i=0;i<n;i++)
    28     {
    29         int c,d;
    30         cin>>c>>d;
    31         if(d>max)
    32             max = d;
    33         for(int j=c;j<d;j++)
    34             time[j]++;
    35     }
    36     
    37     int sum=0;
    38     for(int i = 1;i<max;i++)
    39     {
    40     //    cout<<i<<" "<<time[i]<<endl;
    41         if(time[i] == 2)
    42         {
    43             sum++;
    44         }
    45     }
    46     cout<<sum;
    47     return 0;
    48 } 
  • 相关阅读:
    中秋假期乱做
    记一道典题 分层图+同余系建图
    Java 创建对象的几种方式
    1029 Median (25 分)(two pointers)
    1107 Social Clusters (30 分)(并查集)
    1153 Decode Registration Card of PAT (25 分)(模拟,排序,map)
    1143 Lowest Common Ancestor (30 分)(二叉查找树)
    1149 Dangerous Goods Packaging (25 分)
    1152 Google Recruitment (20 分)(字符串处理)
    1154 Vertex Coloring (25 分)(set,hash)
  • 原文地址:https://www.cnblogs.com/blogxjc/p/11206680.html
Copyright © 2020-2023  润新知