SDNU 1089.拓扑排序 ...
来源:互联网 发布:淘宝买手店 编辑:程序博客网 时间:2024/05/24 01:08
1089.拓扑排序
Time Limit: 1000 MS Memory Limit: 32768 KB
Description
给定一个有向图,若图无环,则将其进行拓扑排序并输出,否则输出IMPOSABLE。
第一行为两个整数n(1<=n<=1000)、m(1<=m<=100000);
之后m行,每行两个整数a、b表示一条从a到b的有向边。
若存在环,输出IMPOSABLE,否则输出一行用一个空格隔开的拓扑排序的结果,若存在多个结果,输出字典序最小的。
5 4
1 2
2 3
3 4
4 5
Sample Output
1 2 3 4 5
题目就已经很清楚的把题意给说出来了= =这就是一道拓扑排序的题目,如果有环输出imposable,否则输出字典序最小的拓扑排序。所以直接记录下来入度,从前往后遍历就可以了,模板题。
下面AC代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int t;int ma[1005][1005];int indegree[1005];int toposort(int a){ int i,j,k; for(i=1;i<=a;i++) { for(j=1;j<=a;j++) { if(indegree[j]==0) { indegree[j]--; if(t==0) { cout<<j; t++; } else { cout<<" "<<j; } for(k=1;k<=a;k++) { if(ma[j][k]==1) { indegree[k]--; } } break; } } } return 0;}int goal(int a){int i,j,k;int flag;int in[1005];for(i=1;i<=a;i++) { in[i]=indegree[i]; }for(i=1;i<=a;i++){flag=0;for(j=1;j<=a;j++){if(in[j]==0){flag=1;in[j]=-1;for(k=1;k<=a;k++){if(ma[j][k]) in[k]--;}break;}}if(flag==0) return 0;}if(flag==1) return 1; return 0;}int main(){ int i; int x,y; int n,m; int k; while(scanf("%d%d",&n,&m)!=EOF) { k=0; t=0; memset(ma,0,sizeof(ma)); memset(indegree,0,sizeof(indegree)); for(i=1;i<=m;i++) { scanf("%d%d",&x,&y); if(!ma[x][y]) { ma[x][y]=1; indegree[y]++; } } if(!goal(n)) { cout<<"IMPOSABLE"<<endl; //cout<<"--------------------"<<endl; continue; } toposort(n); cout<<endl; //cout<<"----------------------"<<endl; } return 0;}
1 0
- SDNU 1089.拓扑排序 ...
- SDNU 1031.字母排序 拓扑排序
- SDNU 1089.拓扑排序【找入度为0的节点 拓扑排序】
- sdnu 1031 字母排序(拓扑排序的利用)
- sdnu 1521(快速排序)
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- angular-过滤器currency货币格式
- 手机分屏问题及解决方案
- Linux下安装Python的cx_Oracle模块
- SolrCloud安装
- j_spring_security_logout 404
- SDNU 1089.拓扑排序 ...
- java并发(五)Callable接口
- spring+redis整合
- 练习:编写一个脚本,可以自动建立用户,及匹配密码
- PHP设计模式系列(十七):桥接模式
- Markdown
- <模型汇总_4>神经翻译模型(NMT)新宠_Adversarial Neural Machine Translation_Adversarial-NMT
- cocos creator配置原生平台调试遇到的一些问题
- android中 异步消息处理机制及Handler