样例过了,可是是零分
查看原帖
样例过了,可是是零分
821607
zhueryueqin0852楼主2024/11/20 21:33

code [复制]

#include<bits/stdc++.h>
using namespace std;
int n,m;
int g[50005][50005];
int rd[5005];
int a[50005];
queue<int> q;
int k=0;
void topsort(){
	while(!q.empty()){
		int t=q.front();
		a[++k]=t;
		q.pop();
		for(int i=1;i<=n;i++){
			if(g[t][i]==1){				
				rd[i]--;
				g[t][i]=0;
				if(rd[i]==0)q.push(i);
			}
		}
	} 
	return;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		g[x][y]=1;
		rd[y]++;
	}
	for(int i=1;i<=n;i++){
		if(rd[i]==0){
			q.push(i);
		}
	}
	topsort();
	if(k!=n){
		cout<<"0";	
		return 0;
	}
	int cnt=0;
	for(int i=1;i<=k;i++)cnt++;
	cout<<cnt%80112002;
	return 0;
}
2024/11/20 21:33
加载中...