zoukankan      html  css  js  c++  java
  • 2.26——问题 C: 海港

    题目描述

        小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。    
        小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,他记录了这艘船到达的时间ti(单位:秒),船上的乘客数量ki,以及每名乘客的国籍xi,1, xi,2, . . . , xi,k。    

        小K统计了n艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的24小时(24小时=86400秒)内所有乘船到达的乘客来自多少个不同的国家。    

        形式化地讲,你需要计算n条信息。对于输出的第i条信息,你需要统计满足ti-86400 < tp≤ ti的船只P,在所有的xp,j中,总共有多少个不同的数。

    输入

        第一行输入一个正整数n,表示小K统计了n艘船的信息。    

        接下来n行,每行描述一艘船的信息:前两个整数t和k分别表示这艘船到达海港的时间和船上的乘客数量,接下来k个整数xi,j,表示船上乘客的国籍。

        保证输入的t是递增的,单位是秒,表示从小K第一次上班开始计时,这艘船在第ti秒到达海港。    

        保证1≤n≤105,ki≥ 1,Σki≤3×105,1≤xi,j≤105,1≤ti-1<ti< 109。   
        其中Σki表示所有的ki的和,Σki=k1+k2+...+kn。

    输出

    输出n行,第i行输出一个整数表示第i艘船到达后的统计信息。

    样例输入

    复制样例数据

    3
    1 4 4 1 2 2
    2 2 2 3
    10 1 3
    

    样例输出

    3
    4
    4
    

    提示

        第一艘船在第1秒到达海港,最近24小时到达的船是第一艘船,共有4个乘客,分别是来自国家4,1,2,2,共来自3个不同的国家;    

       第二艘船在第2秒到达海港,最近24小时到达的船是第一艘船和第二艘船,共有4+2=6个乘客,分别是来自国家4,1,2,2,2,3,共来自4个不同的国家;        第三艘船在第10秒到达海港,最近24小时到达的船是第一艘船、第二艘船和第三艘船,共有4+2+1=7个乘客,分别是来自国家4,1,2,2,2,3,3,共来自4个不同的国家。

    #include <iostream>
    #include <cstdio>
    #include <queue>
    using namespace std;
    typedef struct note{
        int t,p;
    }note;
    
    queue<note>Q;
    note hh,tt;
    int n,t,k,xi[500005];
    int i,j;
    int ans;
    int main()
    {
        scanf("%d",&n);
        for(i=0;i<n;i++){
            scanf("%d%d",&t,&k);
            hh.t=t;
            for(j=0;j<k;j++){
                scanf("%d",&hh.p);
                Q.push(hh);
                if(!xi[hh.p]) ans++;
                xi[hh.p]++;
            }
            while(1){
                tt=Q.front();
                if(hh.t-86400>=tt.t){
                    xi[tt.p]--;
                    if(!xi[tt.p]) ans--;
                    Q.pop();
                }
                else break;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    
  • 相关阅读:
    Android 解决小米手机Android Studio安装app 报错的问题It is possible that this issue is resolved by uninstalling an existi
    Android Unresolved Dependencies
    Android studio 自定义打包apk名
    Android Fragment与Activity交互的几种方式
    魅族和三星Galaxy 5.0webView 问题Android Crash Report
    Android几种常见的多渠道(批量)打包方式介绍
    Android批量打包 如何一秒内打完几百个apk渠道包
    上周热点回顾(9.30-10.6)团队
    上周热点回顾(9.23-9.29)团队
    上周热点回顾(9.16-9.22)团队
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319536.html
Copyright © 2011-2022 走看看