{/'title/':/'题目描述/',/'content/':/'小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。//n小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,他记录了这艘船到达的时间t_i(单位:秒),船上的乘客数k_i,以及每名乘客的国籍x_{i,1},x_{i,2},……,x_{i,k}。//n小K统计了n艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的24小时(24小时=86400秒)内所有乘船到达的乘客来自多少个不同的国家。//n形式化地讲,你需要计算n条信息。对于输出的第i条信息,你需要统计满足t_i-86400<t_p<=t_i的船只p,在所有的x_{p,j}中,总共有多少个不同的数。/',/'input_format/':/'第一行输入一个正整数n,表示小K统计了n艘船的信息。//n接下来n行,每行描述一艘船的信息:前两个整数t_i和k_i分别表示这艘船到达海港的时间和船上的乘客数量,接下来k_i个整数x_{i,j}表示船上乘客的国籍。//n保证输入的t_i是递增的,单位是秒;表示从小K第一次上班开始计时,这艘船在第t_i秒到达海港。//n保证1<=n<=10^5,//n∑{k_i}<=3×10^5,//n1<=x_{i,j}<=10^5,//n1<=t_{i-1}<=t_i<=10^9。//n其中∑{k_i}表示所有的k_i的和。/',/'output_format/':/'输出n行,第i行输出一个整数表示第i艘船到达后的统计信息。/',/'hint/':/'【样例1说明】//n第一艘船在第1秒到达海港,最近24小时到达的船是第一艘船,共有4个乘客分别是来自国家4,1,2,2,共来自3个不同的国家;//n第二艘船在第2秒到达海港,最近24小时到达的船是第一艘船和第二艘船,共有4+2=6个乘客,分别是来自国家4,1,2,2,2,3,共来自4个不同的国家://n第三艘船在第10秒到达海港,最近24小时到达的船是第一艘船、第二艘船和第三艘船,共有4+2+1=7个乘客,分别是来自国家4,1,2,2,2,3,3,共来自4个不同的国家。//n//n【样例2说明】//n第一艘船在第1秒到达海港,最近24小时到达的船是第一艘船,共有4个乘客//n分别是来自国家1,2,2,3,共来自3个不同的国家;//n第二艘船在第3秒到达海港,最近24小时到达的船是第一艘船和第二艘船,共有4+2=6个乘客,分别是来自国家1,2,2,3,2,3,共来自3个不同的国家;//n第三艘船在第86401秒到达海港,最近24小时到达的船是第二艘船和第三艘船,共有2+2=4个乘客,分别是来自国家2,3,3,4,共来自3个不同的国家;//n第四艘船在第86402秒到达海港,最近24小时到达的船是第二艘船、第三艘船和第四艘船,共有2+2+1=5个乘客,分别是来自国家2,3,3,4,5,共来自4个不同的国家。//n//n【数据范围】//n对于10%的测试点,n=1,∑{k_i}<=10,1<=x_{i,j}<=10,1<=t_i<=10;//n对于20%的测试点,1<=n<=10,∑{k_i}<=100,1<=x_{i,j}<=100,1<=t_i<=32767;//n对于40%的测试点,1<=n<=100,∑{k_i}<=100,1<=x_{i,j}<=100,1<=t_i<=86400;//n对于70%的测试点,1<=n<=1000,∑{k_i}<=3000,1<=x_{i,j}<=3000,1<=t_i<=10^9;//n对于100%的测试点,1<=n<=10^5,∑{k_i}<=3×10^5,1<=x_{i,j}<=10^5,1<=t_i<=10^9。/',/'sample_input_1/':/'3//n1 4 4 1 2 2//n2 2 2 3//n10 1 3/',/'sample_output_1/':/'3//n4//n4/',/'sample_input_2/':/'4//n1 4 1 2 2 3//n3 2 2 3//n86401 2 3 4//n86402 1 5/',/'sample_output_2/':/'3//n3//n3//n4/',/'code/':/'cpp//n#include <iostream>//n#include <set>//n#include <vector>//nusing namespace std;//n//nint main() {//n int n;//n cin >> n;//n vector<int> t(n);//n vector<int> k(n);//n vector<vector<int>> x(n);//n for (int i = 0; i < n; i++) {//n cin >> t[i] >> k[i];//n x[i].resize(k[i]);//n for (int j = 0; j < k[i]; j++) {//n cin >> x[i][j];//n }//n }//n//n set<int> countries;//n for (int i = 0; i < n; i++) {//n for (int j = i; j >= 0 && t[i] - t[j] <= 86400; j--) {//n for (int l = 0; l < k[j]; l++) {//n countries.insert(x[j][l]);//n }//n }//n cout << countries.size() << endl;//n }//n//n return 0;//n}//n/

海港乘客国籍统计 - C++代码实现

原文地址: https://www.cveoy.top/t/topic/pc4B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录