标签:
Description
Input
Output
Sample Input
Sample Output
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N=1e4+1; int i,j,k,m,n; int map[N][N]; int indegre[N]; long long sum; long long topo() { int x=888,flag=0; for(i=1;i<=n;i++) { flag=0; for(j=1;j<=n;j++) { if(indegre[j]==0) sum=sum+x,flag=1; } for(j=1;j<=n;j++) { if(indegre[j]==0) { indegre[j]--; for(k=1;k<=n;k++) { if(map[k][j]==1) indegre[k]--; } } } if(flag==0&&i!=n) return -1; else x++; } return sum; } int main() { int p1,p2; while(scanf("%d%d",&n,&m)!=EOF) { sum=0; memset(map,0,sizeof(map)); memset(indegre,0,sizeof(indegre)); for(i=0;i<m;i++) { cin>>p1>>p2; if(map[p1][p2]==0) { map[p1][p2]=1; indegre[p1]++; } } printf("%lld\n",topo()); } return 0; }
标签:
原文地址:http://www.cnblogs.com/chen9510/p/4739867.html