zoukankan      html  css  js  c++  java
  • 海港——队列

    海港-队列

    Problem:D

    Time Limit:2000ms

    Memory Limit:65535K

    Description

    小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。
    小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,
    他记录了这艘船到达的时间ti (单位:秒),船上的乘客数k,以及每名乘客的国籍x1,x2,x3,x4等; 小K 统计了这N 艘船的信息,希望你帮助计算出每1艘船到达为止的24小时(86400秒)内到达的船上的乘客来自多少个国家?

    Input

    第1行为一个n,表示有n条船;
    接下来有n行,每行前2个数为t和k,表示这艘船的到达时间和船上的旅客数量!
    然后是这k个旅客的国籍(x1  x2  x3  .......都是整数)

    Output

    输出n行,每行代表这艘船到达为止的24小时(86400秒)内到达的船上的乘客来自多少个国家?
    t[i]-t[p]<86400,t[i]表示当前船的时间,t[p]表示之前进海港的船!
    1<=n,k<=300000; 1<=ti<=1000000000;

    Sample Input

    例子输入1:
    3
    1 4 4 1 2 2
    2 2 2 3
    10 1 3
    例子输入2:
    4
    1 4 1 2 2 3
    3 2 2 3
    86401 2 3 4
    86402 1 5
    

    Sample Output

    例子输出1:
    3
    4
    4
    例子输出2:
    3
    3
    3
    4
    ————————————————————————————————————————————————————————————————————————————
    本题用队列做就行啦,我们用一个结构体来存储到达船只的时间点和国家数,难点就在此,知道了这个就其他都没有问题了。然后我们用队列进行求解。
    #include<bits/stdc++.h>
    using namespace std;
    struct person
    {
        /* data */
        int time;
        int country;
    };                   //存储船只到达的时间和人员所属国家
    int ans[1000];    //用桶排序来记录人员所属的国家
    int main()
    {
      int n,t,k,x,l,num=0;//num表示的是在一个时间点所到全部人员所属国家的国家数。
      queue<person>vis;    //定义队列
      cin>>n;
      person tmp;            
      for(int i=1;i<=n;i++)
      {
          cin>>t>>k;
          for(int j=1;j<=k;j++)
          {
              cin>>x;
              vis.push({t,x});        //记录所到船只的时间点和人员所属国家
              if(ans[x]==0) {num++;}   //记录前面没有到国家数
    ans[x]++; //将同一个国家的人家加起来 } while(t-vis.front().time>=84600) { tmp=vis.front(); vis.pop(); int x1=tmp.country; ans[x1]--; //如果超过24小时,则无效,将超过24小时这个时间段以外的人员所属国减去。 if(ans[x]==0) num--; } cout<<num<<endl; } return 0;
    }

      

     
     
    成功不是偶然的,失败也不是必然的。
  • 相关阅读:
    VSCode前端 插件
    restframework 分页组件、响应器
    restframework 解析器、渲染器、url控制组件
    __getattr__
    apply和call的用法
    继承
    原型的指向改变
    局部变量变全局变量
    构造函数和实例对象和原型对象之间的关系
    _proto_和prototype
  • 原文地址:https://www.cnblogs.com/zhuyukun/p/12372683.html
Copyright © 2011-2022 走看看