无法输出TAT 求助
查看原帖
无法输出TAT 求助
549521
boy♂Next♂dooor楼主2024/3/30 17:22
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,tot,cnt;
int v[10001],head[10001],nxt[10001],deg[101],a[101],b;
void add(int x,int y)
{
	v[++tot]=y;nxt[tot]=head[x];head[x]=tot;
	deg[y]++;
}
void toposort()
{
	queue<int> q;
	for(int i=1;i<=n;i++)
	{
		if(deg[i]==0) 
		{
			//cout<<i<<" ";
			q.push(i);
		}
	}
	while(q.size())
	{					
		int x=q.front();q.pop();
		a[++cnt]=x;
		for(int i=head[x];i;i=nxt[x])
		{
			deg[v[i]]--;
			if(deg[v[i]]==0) q.push(v[i]);
		}
	}
}
int main()
{
	cin>>n;	
	for(int i=1;i<=n;i++)
	{
		while(cin>>b)
		{
			if(b==0) break;
			add(i,b);
		}
	}
	toposort();
	for(int i=1;i<=cnt;i++)
	{
		cout<<a[i]<<" ";
	}
 	return 0;
}

本地过样例没有输出 但是提交一半AC一半TLE 这是什么问题呢QAQ

2024/3/30 17:22
加载中...