海港
洛谷P2058
Hi guys~ 好久不见~ 今天来看看这道题~ (不要问我为什么写这个)



思路:边输入边处理即可 一个数组记录当先这个国家有多少个人 最后就判断哪些船在24小时以外 减去相应的人数就好啦
//
// main.cpp
// 海港
//
// Created by Helen on 2020/8/9.
// Copyright © 2020 Helen. All rights reserved.
//
#include <iostream>
using namespace std;
int t[300005],c[300005];
int flag[100005];
int cnt,n,ti,k,s;
int main ()
{
cin >> n;
int nbr=1;//上一艘船不超时的第一个人的编号
for (int i=1;i<=n;i++)
{
cin >> ti >> k;
int x;
while (k--)
{
cin >> x;
t[++cnt]=ti;
c[cnt]=x;
if (flag[x]==0)
s++;
flag[x]++;
}
while (ti-t[nbr]>=86400)
{
flag[c[nbr]]--;
if (flag[c[nbr]]==0)
s--;
nbr++;
}
cout << s << endl;
}
}
好啦 希望你看懂了 Au revoir~
----------------------------------------✂︎---------------------------------------------
此题解已经AC 欢迎指出更多优化方法~
本文介绍了洛谷P2058海港问题的解题思路,通过边输入边处理的方式,使用数组记录每个国家人数,然后判断并处理超出24小时的船只情况。
1427

被折叠的 条评论
为什么被折叠?



