集合做法,6个点WA,求纠正
查看原帖
集合做法,6个点WA,求纠正
538427
czy0323楼主2022/7/13 21:36
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll flag[100005];

struct ship {
	ll t;
	set<ll>peo;
} a[100005];

int main() {
	int n;
	cin>>n;
	for(int i=1; i<=n; i++) {		//输入数据 
		int k,p;
		cin>>a[i].t>>k;
		for(int j=1; j<=k; j++) {
			cin>>p;
			a[i].peo.insert(p);
		}
	}
	ll num=1;
	set<ll>all;
	for(int i=1; i<=n; i++) {
		set<ll>::iterator it;
		set<ll>add;
		for(it=a[i].peo.begin(); it!=a[i].peo.end(); it++)		//记录新加入的人和次数 
			add.insert(*it);
		for(it=add.begin(); it!=add.end(); it++){
			flag[*it]++;
			all.insert(*it);
		}
		while( a[num].t<a[i].t-86400 ) {			//删除24小时外的数据 
			set<ll>del;
			for(it=a[num].peo.begin(); it!=a[num].peo.end(); it++)
				del.insert(*it);
			for(it=del.begin(); it!=del.end(); it++) {
				flag[*it]--;
				if( flag[*it]==0 )
					all.erase(*it);
			}
			num++;
		}
		cout<<all.size()<<endl;
	}
}
2022/7/13 21:36
加载中...