利用vector,deque解决(很呆,但思路简单)
查看原帖
利用vector,deque解决(很呆,但思路简单)
599730
Armour072楼主2021/11/23 23:34
#### ```cpp
#include<iostream>
#include<queue>
#include<vector>
#include<cstring>
using namespace std;
int guoji[100005];

struct boat {
	long long int t;
	vector<int> vt;
};

int main()
{
	memset(guoji, 0, sizeof(guoji));
	int n; cin >> n;
	queue<boat> Boat;
	int cnt = 0;
	for (int i = 0; i < n; i++)
	{
		boat temp;
		cin >> temp.t;
		int num; cin >> num;
		int tmp;
		for (int i = 0; i < num; i++)
		{
			cin >> tmp;
			temp.vt.push_back(tmp);
			if (guoji[tmp] == 0)cnt++;
			guoji[tmp]++;
		}
		while (!Boat.empty() && temp.t - Boat.front().t >= 86400) {
			boat front = Boat.front();
	for (int i = 0; i < front.vt.size(); i++)
			{
				guoji[front.vt[i]]--;
		if (guoji[front.vt[i]] == 0)cnt--;
			}
			Boat.pop();
		}
		Boat.push(temp);
		cout << cnt << endl;
	}
	return 0;
}
2021/11/23 23:34
加载中...