uva 10305 ordering tasks题解
来源:互联网 发布:linux安装eclipse jdk 编辑:程序博客网 时间:2024/06/06 03:03
经典拓扑排序入门题
先让入度0的顶点输出,然后将这些顶点所在的边剪掉,然后再让入度为0的顶点输出……直至所有顶点输出。此题注意有一个陷阱,m=0是可以的,就相当于任何一个都可以直接输出。
此题还有一点就是它的输出顺序,先把所有入度为0 的顶点按序号从小到大输出,然后再去剪掉边,所以就加了flag0数组来存放这些顶点
#include <stdio.h>#include <string.h>struct _tag{ int intil,last;}v[10000];int flag[101],flag0[101];int main(int argc, char const *argv[]){ int n,m,i,k,j,fl0; while(scanf("%d %d",&n,&m)==2&&(n||m))//m=0是可以的 { k=0; memset(flag,0,101*sizeof(int)); for(i=1;i<=m;i++) {scanf("%d %d",&v[i].intil,&v[i].last); flag[v[i].last]++; } while(k<n) { fl0=0; for(i=1;i<=n;i++) if(!flag[i]) flag0[fl0++]=i; for(i=0;i<fl0;i++) {printf("%d%c",flag0[i],k==n-1?'\n':' ' ); for(j=1;j<=m;j++) if(v[j].intil==flag0[i]) flag[v[j].last]--; flag[flag0[i]]--; k++;} } } return 0;}
0 0
- uva 10305 ordering tasks题解
- UVa 10305 - Ordering Tasks 拓扑排序题解
- uva 10305 - Ordering Tasks
- uva 10305 - Ordering Tasks
- uva 10305 - Ordering Tasks
- UVa 10305 - Ordering Tasks
- uva-10305 - Ordering Tasks
- UVa 10305 - Ordering Tasks
- UVa 10305 - Ordering Tasks
- UVA 10305 Ordering Tasks
- UVa 10305Ordering Tasks
- Uva 10305 - Ordering Tasks
- uva 10305Ordering Tasks
- uva 10305 - Ordering Tasks
- uva 10305 Ordering Tasks
- UVa 10305 - Ordering Tasks
- UVA 10305 - Ordering Tasks
- Ordering Tasks UVA 10305
- CocoaPods 出现 OTHER_LDFLAGS 错误的解决方法
- 解读机器学习基础概念:VC维的来龙去脉(转)
- Guava之Optional
- JSTL演示如何使用
- SurfaceView-View-GLSurfaceView
- uva 10305 ordering tasks题解
- 专题三 · 1012
- 剑指Offer--049-把字符串转换成整数
- StandardEngine[Catalina].StandardHost[localhost]
- CSS3 input[type=file] 样式美化,input上传按钮美化
- Java设计模式(四):原型模式Prototype
- LeetCode:Candy
- APP开发实战39-Session介绍
- 第12周项目3-数组类运算的实现