NOIP2016普及组port

NOIP2016普及组

T3海港(port)

P2058 [NOIP 2016 普及组] 海港

题目背景

NOIP2016 普及组 T3

题目描述

小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。

小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第 \(i\) 艘到达的船,他记录了这艘船到达的时间 \(t_i\) (单位:秒),船上的乘客数 \(k_i\),以及每名乘客的国籍 \(x_{i,1}, x_{i,2},\dots,x_{i,k}\)

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

形式化地讲,你需要计算 \(n\) 条信息。对于输出的第 \(i\) 条信息,你需要统计满足 \(t_i-86400<t_p \le t_i\) 的船只 \(p\),在所有的 \(x_{p,j}\) 中,总共有多少个不同的数。

输入格式

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

接下来 \(n\) 行,每行描述一艘船的信息:前两个整数 \(t_i\)\(k_i\) 分别表示这艘船到达海港的时间和船上的乘客数量,接下来 \(k_i\) 个整数 \(x_{i,j}\) 表示船上乘客的国籍。

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

保证 \(1 \le n \le 10^5\),$\sum{k_i} \le 3\times 10^5 $ ,\(1\le x_{i,j} \le 10^5\)\(1 \le t_{i-1}\le t_i \le 10^9\)

其中 \(\sum{k_i}\) 表示所有的 \(k_i\) 的和。

输出格式

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

输入输出样例 #1

输入 #1

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

输出 #1

3
4
4

输入输出样例 #2

输入 #2

4
1 4 1 2 2 3
3 2 2 3
86401 2 3 4
86402 1 5

输出 #2

3
3
3
4

说明/提示

【样例解释 1】

第一艘船在第 \(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\) 个不同的国家。

【样例解释 2】

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

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

第三艘船在第 \(86401\) 秒到达海港,最近 \(24\) 小时到达的船是第二艘船和第三艘船,共有 \(2+2=4\) 个乘客,分别是来自国家 \(2,3,3,4\),共来自 \(3\) 个不同的国家。

第四艘船在第 \(86402\) 秒到达海港,最近 \(24\) 小时到达的船是第二艘船、第三艘船和第四艘船,共有 \(2+2+1=5\) 个乘客,分别是来自国家 \(2,3,3,4,5\),共来自 \(4\)个 不同的国家。

【数据范围】

  • 对于 \(10\%\) 的测试点,\(n=1,\sum k_i \leq 10,1 \leq x_{i,j} \leq 10, 1 \leq t_i \leq 10\)
  • 对于 \(20\%\) 的测试点,\(1 \leq n \leq 10, \sum k_i \leq 100,1 \leq x_{i,j} \leq 100,1 \leq t_i \leq 32767\)
  • 对于 \(40\%\) 的测试点,\(1 \leq n \leq 100, \sum k_i \leq 100,1 \leq x_{i,j} \leq 100,1 \leq t_i \leq 86400\)
  • 对于 \(70\%\) 的测试点,\(1 \leq n \leq 1000, \sum k_i \leq 3000,1 \leq x_{i,j} \leq 1000,1 \leq t_i \leq 10^9\)
  • 对于 \(100\%\) 的测试点,\(1 \leq n \leq 10^5,\sum k_i \leq 3\times 10^5, 1 \leq x_{i,j} \leq 10^5,1\leq t_i \leq 10^9\)

思路

尝试思路 1 :暴力

输入每一艘船的信息后,从这艘船开始向前搜索,知道时间差超过 24 小时为止,统计国家数。

时间复杂度: \(\Theta(n^2)\)

空间复杂度:\(\le \Theta(n^2)\)

得分:70

结果:TLE

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
struct Person{int t, k;vector<int>x;
}p[MAXN];
int n, ct[MAXN];
int main(){freopen("port.in", "r", stdin);freopen("port.out", "w", stdout);cin.tie(0)->sync_with_stdio(0);cin >> n;for(int i = 1; i <= n; i++){fill(ct, ct + 100010, 0);cin >> p[i].t >> p[i].k;p[i].x.push_back(0);for(int j = 1; j <= p[i].k; j++){int xx;cin >> xx;p[i].x.push_back(xx);}int temp = p[i].t - 86400, ans = -INT_MAX;for(int j = i; j >= 1; j--){if(p[j].t <= temp)break;for(int kk = 1; kk <= p[j].k; kk++){ct[p[j].x[kk]]++;ans = max(ans, p[j].x[kk]);}}int cnt = 0;for(int j = 1; j <= ans; j++){if(ct[j] != 0)cnt++;}cout << cnt << '\n';}return 0;
}

尝试思路2

每次输入船只信息时记录当前的国家数量,用队列存储每只船的信息。每次从 队列中 的第一艘船开始,如果这艘船相比于当前到达的船已超过 24 小时,将这艘船从队列中去除,并维护计数数组信息。

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
struct Person{int t, k;vector<int>x;
};
queue<Person>p;
int n, ct[MAXN], ans;
int main(){// freopen("port.in", "r", stdin);// freopen("port.out", "w", stdout);cin.tie(0)->sync_with_stdio(0);cin >> n;for(int i = 1; i <= n; i++){Person temp;cin >> temp.t >> temp.k;temp.x.push_back(0);for(int j = 1; j <= temp.k; j++){int xx;cin >> xx;temp.x.push_back(xx);if(ct[xx] == 0)ans++;//记录当前国家数量ct[xx]++;}p.push(temp);int time = temp.t - 86400;while(!p.empty()){Person ship = p.front();if(ship.t > time)break;for(int j = 1;j <= ship.k; j++){//维护计数数组及国家数量ct[ship.x[j]]--;if(ct[ship.x[j]] == 0)ans--;}p.pop();//超过 24 小时的船不需要继续操作了}cout << ans << "\n";}return 0;
}

时间复杂度: \(\Theta(nk)\)

空间复杂度: \(\Theta(nk)\)

得分:100

结果: \(\color{#52C41A}AC\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从增长焦虑到经营确定性:巨益OMS业财一体化的实践路径

跨境电商正处在一个“流量见顶、成本抬升、监管趋严”的关键拐点。 过去依靠低价和广告投放的粗放式增长模式,已难以应对复杂的全球经营现实。 区域分化加剧:欧美市场重视品牌与合规,东南亚聚焦性价比与供应链速度。…

Alexa对话式AI技术进展全解析

本文详细介绍了某中心在对话式AI领域的技术突破,包括自然对话交互、自学习系统、多语言支持等核心能力,涵盖了语音识别、语义理解、隐私保护等关键技术模块的实现原理与应用场景。Alexa对话式AI技术进展 在疫情期间,…

AI小说生成器:智能创作与一致性维护的全流程解决方案

基于大语言模型的智能小说生成工具,提供从世界观构建到章节生成的全流程支持,通过向量检索和一致性检查确保剧情连贯性,助力创作者高效产出逻辑严谨的长篇故事。AI小说生成器 一款基于大语言模型的多功能小说生成器…

2025无锡考编培训机构权威推荐榜:专业辅导与高通过率口碑之

2025无锡考编培训机构权威推荐榜:专业辅导与高通过率口碑之选在当今就业竞争日益激烈的环境下,公务员和事业单位编制岗位因其稳定性与福利保障,成为众多求职者的首选目标。无锡作为长三角重要城市,其考编培训市场也…

脚本方式安装Python 特定版本

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClien…

数据结构-单向循环链表

数据结构-单向循环链表 /**************************************************************************** * @name* @author:王玉珩* @date:2025/10/07** *CopyRight (c) 2025-2026 All Rightt Reseverd* ***********…

论人工智能,对人类生产的影响。

接下来,我会说下,人工智能对人类的终极影响。这其中,最关键的影响因素是什么。 恐怖的进步速度! 我记得过年的时候,这个机器人还和帕金森一样转手绢。但是今天看,他已经可以后空翻,踩墙后空翻。而且,他的手基本…

2025高频超声波检测设备厂家权威推荐榜:精准检测与技术创新

2025高频超声波检测设备厂家权威推荐榜:精准检测与技术创新随着工业4.0时代的深入发展,高频超声波检测技术作为无损检测领域的重要组成部分,正迎来前所未有的发展机遇。在航空航天、轨道交通、能源电力等关键行业,…

HEU KMS Activator最新功能使用教程及介绍,附HEU KMS Activator最新版下载

说明 前半部分会以介绍为主,如果想直接学习怎么使用的前往下看。 什么是KMS? KMS,全称Key Management Service。 很多人可能不知道,KMS其实是微软官方认可的一种系统激活方式。这个激活方式主要用于企业计算机的批…

Codeforces Round 991 (Div. 3) vp 题解

Codeforces Round 991 (Div. 3) vp 题解Codeforces Round 991 (Div. 3) vp 题解 A 纯模拟,模拟一下就可以了。 B 呃,挺好发现的吧,每一次只能选择 i-1 和 i+1 这两个位置,就决定了这道题中,一个数组中只有同奇偶性…

PWN手的成长之路-14-ciscn_2019_c_1-ret2libc

file:checksec:查看 main 函数:再结合程序的运行,我们输入的值存到了 v4 中,当 v4=2 时,程序重新再次执行 begin() 函数,若输入 3,则直接退出程序,只有当我们输入 1 的时候,程序才会调用 encrypt() 函数。 查看…

国内高速下载镜像

文中方法非常好用,下载速度很快 1、项目介绍上次提及使用CNB下载镜像,有网友反应使用KSpeeder做加速也很香。但KSpeeder后续维护的稳定性肯定是没有自己使用CNB构建的稳定的。但是KSpeeder也是有自己的优势的,这个是…

2025数控高速滚齿机厂家权威推荐榜:精密加工与高效产能标杆

2025数控高速滚齿机厂家权威推荐榜:精密加工与高效产能标杆随着制造业向智能化、精密化方向快速发展,数控高速滚齿机作为齿轮加工领域的核心装备,其技术水平和性能指标直接影响着整个产业链的制造精度与生产效率。在…

完整教程:prompt提示词工程---如何让大模型更听得懂人话

完整教程:prompt提示词工程---如何让大模型更听得懂人话pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

2025年10月广州 1688 代运营服务商推荐,阿里巴巴1688店铺代运营、全店托管代运营公司推荐!

在数字经济飞速发展的当下,1688 平台已成为众多企业拓展线上业务的重要阵地。然而,不少企业在运营 1688 店铺时面临诸多难题:缺乏专业的运营团队,对平台规则和算法逻辑不熟悉,难以精准把握市场趋势和消费者需求,…

2025拉伸器厂家最新权威推荐榜:技术实力与市场口碑深度解析

2025拉伸器厂家最新权威推荐榜:技术实力与市场口碑深度解析在工业制造领域,拉伸器作为关键工具设备,其性能优劣直接影响生产效率和产品质量。随着2025年制造业升级加速,拉伸器行业也迎来技术革新浪潮。为帮助用户精…

实用指南:Linux动静态库

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年10月工作服厂家最新推荐排行榜,春夏秋冬季工作服,工人工作服,车间工作服,防静电工作服公司推荐!

在当前工作服市场中,企业采购时常常面临诸多难题。一方面,市场上工作服产品质量参差不齐,部分产品面料不符合行业标准,色牢度差、易磨损,难以满足不同行业的工作场景需求,比如化工行业需要的防酸碱工作服,若面料…

2023-网鼎杯web-thinkshop

这题应该在出题的时候就有提供docker环境,也就是说比赛的时候就有考ctfer搭建docker环境的能力,我看了网上大佬的wp,也侧面验证了,所以从搭建环境开始 docker load < thinkshop.tar docker导入环境 docker run -tid…

2025活性氧化镁厂家最新权威推荐榜:高纯度与稳定性能深度解

2025活性氧化镁厂家最新权威推荐榜:高纯度与稳定性能深度解在现代化工材料领域,活性氧化镁作为一种重要的无机化工原料,其应用范围已从传统的橡胶、塑料行业扩展到医药、环保等新兴领域。随着产业升级对材料性能要求…