HDOJ1285 确定比赛名次(拓扑排序)
来源:互联网 发布:网络教育公共课考试 编辑:程序博客网 时间:2024/05/12 15:15
标准的拓扑排序,用邻接表来存储
邻接表的下标表示节点序号,邻接表内容包括两个部分,一个是该节点的前驱数目,一个是后继链表(存放其所有后继的链表)。
/*HDOJ1285作者:陈佳润2013-04-17*/#include<iostream>using namespace std;typedef struct tag_node{//邻接表的边域节点int data;struct tag_node *next;}Node;typedef struct tag{//邻接表int num;Node *node;}Table;int main(){Table table[501];int i,n,m,a,b,j;Node *p;//freopen("1.txt","r",stdin);while(cin>>n>>m){for(i=1;i<=n;i++){//初始化table[i].num=0;table[i].node=NULL;}for(i=1;i<=m;i++){//构造邻接表cin>>a>>b;table[b].num++;p=new Node;p->data=b;p->next=table[a].node;table[a].node=p;}for(i=1;i<=n;i++){//开始排序for(j=1;j<=n;j++){//找到一个没有前驱的点if(table[j].num==0){//如果该点没有前驱cout<<j;if(i!=n) cout<<" ";table[j].num=-1;//表示该点已经用过while(table[j].node!=NULL){//让该点的所有后继点的前驱总数-1p=table[j].node;table[j].node=table[j].node->next;table[p->data].num--;}break;}}}cout<<endl;}return 0;}
- HDOJ1285 确定比赛名次(拓扑排序)
- HDOJ1285 确定比赛名次(拓扑排序)
- hdoj1285 确定比赛名次 (经典拓扑排序) 初学拓扑排序.做
- HDOJ1285 确定比赛名次
- <hdoj1285>确定比赛名次
- hdoj1285-确定比赛名次
- hdu 确定比赛名次(拓扑排序)
- 确定比赛名次(拓扑排序)
- 确定比赛名次 (拓扑排序)
- hdu1285 确定比赛名次(拓扑排序)
- 确定比赛名次(拓扑排序)
- 确定比赛名次(拓扑排序)
- 确定比赛名次 (拓扑排序)
- 确定比赛名次(拓扑排序)
- HDOJ 确定比赛名次 (拓扑排序)
- HDU1285确定比赛名次(拓扑排序)
- hdu 确定比赛名次(拓扑排序)
- 确定比赛名次(拓扑排序)
- CvMat学习
- 内存管理(一)java的内存泄露预防
- access windows share with smbclient and mount with cifs
- Cassandra 为集群中的节点手动分配token
- web开发平台的演变
- HDOJ1285 确定比赛名次(拓扑排序)
- 全局变量
- MYSQL 中文乱码 字符集utf8 下插入中文
- float 转型后出现的问题
- 文件
- 城镇吸引力评价
- Google的Objective-C编码规范
- android 第三个开机动画的修改
- SocketChannel read方法一直返回0的原因