我!M!L!E!了!!!
查看原帖
我!M!L!E!了!!!
747369
CooooldWind_楼主2022/11/24 20:45

这个我做了三天的代码竟然卡#4 #5了!!!

心情不大好T_T...

求看看怎么调能过。

#include<bits/stdc++.h>
using namespace std;
int n,m,sorted[100001];
short in_deg[100001],ans[100001];
struct node{
	int nxt_sum,nxt[4000];
}excel[100001];
int main(){
	cin >> n >> m;
	for(int i = 0;i < m;i++){
		int x,y;
		cin >> x >> y;
		excel[x].nxt[excel[x].nxt_sum++] = y;
		in_deg[y]++;
	}
	int sted_sum = 0;
	queue<int> q;
	for(int i = 1;i <= n;i++){
		if(in_deg[i] == 0){
			q.push(i);
		}
		ans[i] = 1;
	}
	while(!q.empty()){
		int temp = q.front();
		q.pop();
		sorted[sted_sum++] = temp;
		for(int i = 0;i < excel[temp].nxt_sum;i++){
			int to = excel[temp].nxt[i];
			if(in_deg[to] > 0){
				in_deg[to]--;
				if(in_deg[to] == 0){
					q.push(to);
					ans[to] = ans[temp] + 1;
				}
			}
		}
	}
	for(int i = 1;i <= n;i++) cout << ans[i] << endl;
	return 0;
}

我为了避免MLE甚至特意去学了邻接表

(我发帖的时候输的验证码是fw99 (我是fw请救救我)

2022/11/24 20:45
加载中...