uva 10305 ordering tasks(超级烂题)——yhx
来源:互联网 发布:烟花算法程序 编辑:程序博客网 时间:2024/05/21 06:43
1 #include<cstdio> 2 #include<cstring> 3 #include<stack> 4 using namespace std; 5 int first[110],next[10010],to[10010],n; 6 bool b[110]; 7 stack<int> sta; 8 void dfs(int p) 9 {10 int i,j,k,x,y,z;11 for (i=first[p];i;i=next[i])12 if (!b[to[i]]) dfs(to[i]);13 b[p]=1;14 sta.push(p);15 }16 void st()17 {18 int i,j,k,p,q,x,y,z;19 memset(b,0,sizeof(b));20 for (i=1;i<=n;i++)21 if (!b[i]) dfs(i);22 }23 int main()24 {25 int m,i,j,k,x,y;26 while (scanf("%d%d",&n,&m)&&(n||m))27 {28 memset(first,0,sizeof(first));29 memset(next,0,sizeof(next));30 memset(to,0,sizeof(to));31 for (i=1;i<=m;i++)32 {33 scanf("%d%d",&x,&y);34 next[i]=first[x];35 first[x]=i;36 to[i]=y;37 }38 st();39 printf("%d",sta.top());40 sta.pop();41 while (!sta.empty())42 {43 printf(" %d",sta.top());44 sta.pop();45 }46 printf("\n");47 }48 49 }
拓扑排序,在每个没有访问过的点DFS。之后入栈。
为什么说是个烂题呢?题上没有说m的范围,所以m=0的时候不代表输入结束,不能写while (scanf()&&n&&m)。
0 0
- uva 10305 ordering tasks(超级烂题)——yhx
- uva 10305 ordering tasks(超级烂题)——yhx
- UVA 10305 —— Ordering Tasks(拓扑排序入门)
- uva 12171 sculpture (超级好题)——yhx
- uva 12171 sculpture (超级好题)——yhx
- 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 572 oil deposits——yhx
- Java 文件字符过滤流练习--银行卡信息系统(console)
- uva 816 abbott's revenge ——yhx
- setTransformationMethod 的使用
- AutoLayout I
- uva 10305 ordering tasks(超级烂题)——yhx
- uva 10129 play on words——yhx
- uva 10562 undraw the trees(烂题) ——yhx
- 【Java】类执行过程
- uva 12171 sculpture (超级好题)——yhx
- iOS8下,cell分割线右移
- uva 1572 self-assembly ——yhx
- uva 1599 ideal path(好题)——yhx
- CTCC2016中国云计算技术大会参会感想