10 条题解

  • 6
    @ 2024-1-9 16:30:40
    #include<bits/stdc++.h>
    using namespace std;
    vector<int>a[10001];
    int d[10001],b[10001],tot;
    queue<int>q;
    int main(){
    	int n,m;cin>>n>>m;
    	for(int i=1;i<=m;i++){
    		int u,v;cin>>u>>v;
    		a[v].push_back(u);
    		d[u]++;
    	}
    	for(int i=1;i<=n;i++)
    		if(!d[i]){
    			q.push(i);
    			b[i]=100;
    		}
    	while(q.size()){
    		tot++;
    		int u=q.front();
    		q.pop();
    		for(int i=0;i<a[u].size();i++){
    			int v=a[u][i];
    			d[v]--;
    			if(!d[v]){
    				q.push(v);
    				b[v]=b[u]+1;
    			}
    		}
    	}
    	if(tot<n)cout<<"Poor Xed";
    	else{
    		tot=0;
    		for(int i=1;i<=n;i++)tot+=b[i];
    		cout<<tot;
    	}
    	return 0;
    }
    

    信息

    ID
    471
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    359
    已通过
    99
    上传者