10 条题解

  • -10
    @ 2024-1-9 16:32:09
    #include<bits/stdc++.h>
    using namespace std;
    int n,m,tot,sum; 
    queue<int> q;
    vector<int> a[10005];
    int mon[10005],d[10005];
    int main(){
    	ios::sync_with_stdio(false);
    	cin.tie(0);cout.tie(0);
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)mon[i]=100;
    	for(int i=1;i<=m;i++){
    		int u,v;
    		cin>>v>>u;
    		mon[v]=mon[u]+1;
    		a[u].push_back(v);
    		d[v]++;
    	}
    	for(int i=1;i<=n;i++){
    		if(d[i]==0)q.push(i);
    	}
    	while(!q.empty()){
    		int u=q.front();
    		q.pop();
    		sum+=mon[u];
    		tot++;
    		for(long long i=0;i<a[u].size();i++){
    			int v=a[u][i];
    			d[v]--;
    			if(d[v]==0)q.push(v);
    		}
    	}
    	if(tot<n)cout<<"Poor Xed";
    	else cout<<sum;
    	return 0;
    }
    
    

    信息

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