POJ 1094(TopoSort)
来源:互联网 发布:mac重置管理员账户 编辑:程序博客网 时间:2024/05/22 02:10
POJ 1094
题意:该题题意明确,就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列。是典型的拓扑排序,但输出格式上确有三种形式:
1.该字母序列有序,并依次输出;
2.该序列不能判断是否有序
3.该序列字母次序之间有矛盾,即有环存在。
但是注意顺序,必须要先判断环,其次是无序,最后才是有序。
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define Max 30int gragh[Max][Max];int ingreed[Max];char ans[Max];int n,m;int TopoSort(){ int temp[Max],pos,flag = 1,all = 0; for(int i = 0;i < n; i++) temp[i] = ingreed[i]; for(int i = 0;i < n; i++){ int num = 0; for(int j = 0;j < n; j++){ if(temp[j] == 0){ pos = j; num++; } } if(num == 0) return 0; if(num > 1) flag = -1; temp[pos] = -1; ans[all++] = pos; for(int j = 0;j < n; j++) if(gragh[pos][j] == 1) temp[j]--; } return flag;}int main(){ while(cin>>n>>m){ if(n == 0 && m == 0) break; memset(gragh,0,sizeof(gragh)); memset(ingreed,0,sizeof(ingreed)); char str[5]; int sign = 0; for(int i = 1;i <= m; i++){ cin>>str; if(sign) continue; gragh[str[0] - 'A'][str[2] - 'A'] = 1; ingreed[str[2] - 'A']++; int s = TopoSort(); if(s == 0){ printf("Inconsistency found after %d relations.\n",i); sign = 1; } else if(s == 1){ printf("Sorted sequence determined after %d relations: ",i); for(int j = 0;j < n; j++) printf("%c",ans[j] + 'A' ); printf(".\n"); sign = 1; } } if(!sign) printf("Sorted sequence cannot be determined.\n"); } return 0;}
0 0
- POJ 1094(TopoSort)
- 拓扑排序(Toposort)
- TopoSort
- toposort
- Toposort(拓扑排序)——DFS递归回溯版
- Toposort(拓扑排序)——DFS递归回溯版
- Toposort(拓扑排序)——DFS递归回溯版
- UVALive 5906 Smoking gun(差分约束 + toposort)
- 【hdu 5638】Toposort 中文题意&题解&代码(C++)
- HDU 5638 Toposort(贪心+优先队列+拓扑排序)
- 图toposort
- 图论的各种姿势(中) Toposort拓扑排序 学习笔记 POJ2367 CODE[VS]2833
- 拓扑排序 toposort
- Toposort(拓扑排序)
- 拓扑排序toposort 模板
- toposort算法模板
- HDU 5638 Toposort
- HDU 5638 Toposort
- java大整数比大小
- 初学c/c++——提及文件操作
- yii 2.0 安装
- struts标签--logic总结
- 双向队列
- POJ 1094(TopoSort)
- android studio生成aar包并在其他工程引用aar包
- Spring学习Eclipse的各种坑
- 大佬推荐的书
- oracle中merge的用法,以及各版本的区别
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
- JS中默认编码导致URL重写时中文参数乱码
- 如何对抗内心无处不在的疲惫感?
- 尺取法模版