妹子求助,MLE * 2 不清楚原因
查看原帖
妹子求助,MLE * 2 不清楚原因
108185
Catalan1906AHトリスタ楼主2024/5/19 21:34

真的不知道为什么会MLE QAQ

请问有神仙们帮我看看吗 /kel

int n, m, pre[100010], nxt[100010], t, ans[100010];
map < pair < int , int > , bool > edge; 

int main() {
	n = read(), m = read();
	for(int i = 1; i <= m; i++) {
		int u = read(), v = read();
		edge[{u, v}] = edge[{v, u}] = 1;
	}
	for(int i = 1; i <= n; i++) pre[i] = i - 1, nxt[i] = i + 1;
	nxt[0] = 1; pre[n + 1] = n;
	queue < int > q;
	while(nxt[0] != n + 1) {
		int cnt = 1;
		q.push(nxt[0]);
		nxt[0] = nxt[nxt[0]];
		pre[nxt[0]] = 0;
		while(!q.empty()) {
			int k = q.front(); q.pop();
			int now = nxt[0];
			while(now != n + 1) {
				if(!edge[{k, now}]) {
					pre[nxt[now]] = pre[now];
					nxt[pre[now]] = nxt[now];
					q.push(now), cnt++;
				}
				now = nxt[now];
			}
		}
		ans[++t] = cnt;
	}
	sort(ans + 1, ans + t + 1);
	write(t), puts("");
	for(int i = 1; i <= t; i++) write(ans[i]), putchar(' ');
    return 0;
}
2024/5/19 21:34
加载中...