POJ 1094 Sorting It All Out 拓扑排序(比较好的模板)
来源:互联网 发布:网络写手赚钱吗 编辑:程序博客网 时间:2024/06/09 14:44
看好题目要求,输入一句立即判断,其余没有什么特殊要求
#include<stdio.h>#include<string.h>#include<stdlib.h>int map[110][110];int du[110];int du2[110];char a[1110];int flag;//0表示排好,1表示无序,2成环int n, m;void topsort(){ int i, j; int cnt = 0; for(i = 1;i <=n;i++){ du2[i] = du[i]; } int pos; int e; for(i = 1;i <= n;i++){ e = 0; for(j = 1;j <= n;j++){ if(du2[j] == 0){ pos = j; e++; } } if(e== 0) { flag = 2;//成环 return; } if(e > 1){ flag = 1;//至少又一个点无法确定排序 } du2[pos] = -1;//把此点删除掉 a[cnt++] = 'A'+pos-1;//A是1开始存的,所以要减1 a[cnt] = '\0'; for(j = 1;j <= n;j++){ if(map[pos][j]){ du2[j]--; } } }}int main(){ char str[5]; int sign;//标记是否还继续判断,如果输出,就不用继续判断输入的条件 int i; while(~scanf("%d %d", &n, &m)){ if(n==0&&m==0) break; sign = 0; memset(du,0,sizeof(du)); memset(map,0,sizeof(map)); for(i = 1;i <= m;i++){ scanf("%s", str); if(sign == 1) continue; flag = 0; map[str[0]-'A'+1][str[2]-'A'+1] = 1; du[str[2]-'A'+1]++; topsort(); if(flag==2){ printf("Inconsistency found after %d relations.\n", i); sign = 1; } if(flag == 0){ printf("Sorted sequence determined after %d relations: %s.\n", i, a); sign = 1; } } if(flag == 1){ printf("Sorted sequence cannot be determined.\n"); } } return 0;}
0 0
- POJ 1094 Sorting It All Out 拓扑排序(比较好的模板)
- POJ 1094 Sorting It All Out(拓扑排序)
- Poj 1094-Sorting It All Out [拓扑排序]
- POJ 1094-Sorting It All Out 拓扑排序
- zoj 1060 || poj 1094 Sorting It All Out(拓扑排序)
- POJ 1094 Sorting It All Out 拓扑排序
- POJ 1094 Sorting It All Out 拓扑排序
- POJ 1094 Sorting It All Out 拓扑排序
- poj 1094 Sorting It All Out 拓扑排序
- POJ 1094 Sorting It All Out (拓扑排序)
- POJ 1094 Sorting It All Out 拓扑排序
- poj 1094 Sorting It All Out(拓扑排序)
- poj 1094 Sorting It All Out 拓扑排序
- poj 1094 Sorting It All Out 拓扑排序
- poj 1094 Sorting It All Out (拓扑排序)
- poj 1094 Sorting It All Out (拓扑排序)
- Poj 1094 Sorting It All Out——拓扑排序
- POJ 1094 Sorting It All Out 拓扑排序+Floyd算法
- html meta标签之http-equiv
- metalab作图
- Spring MVC ajax
- C# 枚举使用
- 全栈工程师笔记2
- POJ 1094 Sorting It All Out 拓扑排序(比较好的模板)
- Codeforces Round #365 (Div. 2) D (线段树)
- PL/SQL Developer连接本地Oracle 11g 64位数据库
- VMware虚拟机配置RedHat7X64位和宿主机win10x64位能互相ping通
- android源码查看 android-support-v4.jar
- C++中的RAII
- Linux之硬件基础篇
- 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
- android手势识别器的简单操作