1 solutions
-
0
C++ :
#include<bits/stdc++.h> using namespace std; struct node{ int time,nation; //到岗时间,国籍编号 }; queue<node>q; //存储有效时间范围内的乘客信息 int cnt[100010];//统计不同国籍编号人数 int t,k,x; //t时间 k人数 x国籍 int main(){ int n;cin>>n; node d; int ans=0;//有多少种不同的国籍 for(int i=1;i<=n;i++){ cin>>t>>k; //先将超时的弹出 while(!q.empty()&&t-q.front().time>=86400){ d=q.front(); //队首元素 q.pop(); cnt[d.nation]--; //该国籍对应人数-1 if(cnt[d.nation]==0) ans--; //国籍种类-1 } for(int i=1;i<=k;i++){ cin>>x; //读入每个国籍编号 d.time=t; d.nation=x; q.push(d); //将结构体队列 d 入队 cnt[d.nation]++; if(cnt[d.nation]==1) ans++; //如果是第一次出现该编号国籍 国籍种类+1 } cout<<ans<<endl; } }
- 1
Information
- ID
- 9200
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By