hdu 1285 拓扑排序……
819467 | asia2562219 | E | Accepted | 1260 KB | 62 ms | C++ | 902 B | 2012-11-17 19:18:09 |
拓扑排序水题,
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<cstdio> #include<cstring> #include<string> #include<cstdlib> #include<algorithm> #include<iostream> using namespace std; #define MAXN 1111111 int map[501][501],deg[501]; int n,m; void change(int x) { for(int i=1;i<=n;i++) if(deg[i]>0&&map[x][i]==1) deg[i]--; } int main() { int i,j,x,y; while(scanf("%d%d",&n,&m)!=EOF) { memset(map,0,sizeof(map)); memset(deg,0,sizeof(deg)); for(i=0;i<m;i++) { scanf("%d%d",&x,&y); if(map[x][y]==0){ map[x][y]=1;deg[y]++;} } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) if(deg[j]==0) { if(i<n)printf("%d ",j); else printf("%d\n",j); deg[j]=-1; change(j); break; } } } return 0; }
今天真水。