1 条题解
-
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个不同 的国家。
#include <bits/stdc++.h> using namespace std; int n,t,k,i,r,ans; int country[100005],x[300005],y[300005]; int main(){ cin>>n; while(n--){ cin>>t>>k; while(k--){ y[++r]=t;//记录时间 cin>>x[r];//当前这个人的国籍 if(!country[x[r]]) ans++;//这个国籍没有人是,那么ans++ country[x[r]]++;//这个国籍的人++ } while(t-y[i]>=86400){//当前t同之前存储的时间比较,如果大于限度,在 country[x[i]]--;//那么那个人所在国籍的人数-- if(!country[x[i]]){//如果那个人走了之后它所在国家的人数为0 ans--;//ans--; } i++;//换到下一个人 } cout<<ans<<endl; } return 0; }
- 1
信息
- ID
- 568
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 13
- 已通过
- 13
- 上传者