hdu-1285拓扑排序
2016-04-29 19:12
357 查看
#include<iostream> #include<stdlib.h> #include<cstring> #include<stdio.h> #define MAX 505 using namespace std; int node[MAX]; void toposort(int map[MAX][MAX],int indegree[MAX],int n) { int i,j,k,t=0; for(i=1; i<=n; i++) //遍历n次 { for(j=1; j<=n; j++) //找出入度为0的节点 { if(indegree[j]==0) { indegree[j]--; node[t++]=j; for(k=1; k<=n; k++) //删除与该节点关联的边 { if(map[j][k]==1) { indegree[k]--; } } break; } } } } int main() { int n,m; //n:关联的边数,m:节点数 while(scanf("%d%d",&n,&m)==2) { int i; int x,y; int map[MAX][MAX]; //邻接矩阵 int indegree[MAX]; //入度 memset(map,0,sizeof(map)); memset(node,0,sizeof(node)); memset(indegree,0,sizeof(indegree)); for(i=0; i<m; i++) { scanf("%d %d",&x,&y); if(!map[x][y]) { map[x][y]=1; indegree[y]++; } } toposort(map,indegree,n); for(i=0;i<n;i++) { if(i) cout<<" "; cout<<node[i]; } cout<<endl; } return 0; }
相关文章推荐
- 冲刺7
- MAC卸载/删除 Parallels Desktop虚拟机的方法
- 【7】Zabbix WEB指标监控
- Java 内部类的一些总结
- 实验十一 路由器综合路由配置
- 无线网卡工作模式笔记
- 解决安装pycrypto时的错误:Unable to find vcvarsall.bat
- 欢迎使用CSDN-markdown编辑器
- 虚拟机VirtualBox安装遇见问题
- 下标运算符[]重载
- iOS开发多线程篇—线程的状态
- vSphere Client 更改 ESX/ESXi 主机的端口
- 阿里巴巴集团CRO刘振飞:双11的六维技术准备
- web.xml 中以编码方式添加filter并设置初始化参数
- ssh及sshfs
- Redis优化经验
- HTML5 移动端的上下左右滑动问题
- 浏览器使用WebSocket实时通讯
- Sed详解
- 《MySQL技术精粹:架构、高级特性、性能优化与集群实战》目录