70分求助:TLE
查看原帖
70分求助:TLE
335552
Christophe_楼主2021/4/5 09:10
#include<cstdio>
using namespace std;
int main(void) {
	int n, s[100000][4], p[300300], front=0, a=1, l;
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i){
		scanf("%d %d", &s[i][1], &l);
		s[i][2] = a; s[i][3] = a+l-1; a = a+l;
		for(int j = s[i][2]; j <= s[i][3]; ++j) scanf("%d", &p[j]);
	}
	for(int i = 1; i <= n; ++i) {
		while(s[front+1][1] <= s[i][1]-86400) ++front;
		bool x[300300] = {0};
		int cnt = 0;
		for(int j = s[front+1][2]; j <= s[i][3]; ++j){
			if(x[p[j]] == 0){
				++cnt;
				x[p[j]] = 1;
			}
		}
		printf("%d\n", cnt);
	}
	return 0;
}

3个点TLE,请问该如何改进?

2021/4/5 09:10
加载中...