求助大佬,海港NOIP2016t3 P2058最后六个点WA
查看原帖
求助大佬,海港NOIP2016t3 P2058最后六个点WA
513726
venti_de_dog楼主2023/10/14 10:58
#include<bits/stdc++.h>
using namespace std;
#define itn int
#define ll long long
int n;
struct y
{
	int time;
	int num;
	int nowl;
}q[200005];
int vis[200005];
itn ans[200005];
int cc;
int now,num;
int l=1;
int aans=0;
int cnt;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>now>>num;
		if(now/86400>=1)
		{
			for(itn i=l;i<=cnt;i++)
			{
				if(now-q[i].nowl<86400) break;
				if(now-q[i].nowl>=86400)
				{
					if(vis[q[i].num]>0)
					
					vis[q[i].num]--;
					if(vis[q[i].num]==0)
					{
						aans--;
					}
					l++;
				}	
			}
		}
		for(int j=1;j<=num;j++)
		{
			int tim;
			cin>>tim;
			cnt++;
			q[cnt].nowl=now;
			q[cnt].num=tim;
			q[cnt].time=86400;
			if(vis[tim]==0)
			{
				aans++;
			}
			vis[tim]++;
		}
	cout<<aans<<endl;
	}
	return 0;
}

思路是如果发现这个药没有就标记上并且vis++,如果时间足够就删去(vis--),蒟蒻求助大佬qwq orz orz orz orz orz

2023/10/14 10:58
加载中...