博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1094 Sorting It All Out
阅读量:6857 次
发布时间:2019-06-26

本文共 1886 字,大约阅读时间需要 6 分钟。

感觉还是挺好的一个题的,虽说是看的小媛的思路;

题意:判断给出的一些字母的先后顺序,进行拓扑排序,看看是否有序;

思路:用flord判断环还是挺好的,然后拓扑排序判断序列的排序关系;

代码:

View Code
#include 
#include
#include
#include
#include
using namespace std; int n = 0; int m = 0; int map[30][30] = {
0}; int flag = 0; int huan() {
for(int i = 0;i < n; ++i) for(int j = 0;j < n; ++j) for(int k = 0;k < n; ++k) if(map[j][i]&&map[i][k]) map[j][k] = 1; for(int i = 0;i < n; ++i) if(map[i][i]) return 1; return 0; } int find(int u) {
int visit[30] = {
0}; int in[30] = {
0}; char ans[30] = {
0}; for(int i = 0;i < n; ++i) for(int j = 0;j < n; ++j) if(map[i][j]) ++in[j]; int q = 0; for(int i = 0;i < n;++i) {
int num = 0; int temp = 0; for(int j = 0;j < n; ++j) if(!visit[j] && in[j] == 0) {
ans[q++] = j + 'A'; ++num; visit[j] = 1; temp = j; } if(num > 1) return 0; for(int k = 0;k < n; ++k) if(map[temp][k]) --in[k]; } printf("Sorted sequence determined after %d relations: ",u); for(int i = 0;i < q; ++i) printf("%c",ans[i]); printf(".\n"); return 1; } int main() {
while(scanf("%d%d",&n,&m),n&&m) {
memset(map,0,sizeof(map)); char str[4] = {NULL}; flag = 0; for(int i = 1;i <= m; ++i) {
scanf("%s",str); map[str[0]-'A'][str[2]-'A'] = 1; if(flag) continue; if(huan()) {
flag = 1; printf("Inconsistency found after %d relations.\n",i); continue; } if(find(i)) {
flag = 2; continue; } } if(flag == 0) printf("Sorted sequence cannot be determined.\n"); } }

转载于:https://www.cnblogs.com/LT-blogs/archive/2012/03/17/2402634.html

你可能感兴趣的文章
使用Maven构建多模块项目
查看>>
李洪强经典面试题47--UNIX常用命令
查看>>
angularjs中templateUrl的路径问题
查看>>
Linux 命令详解(三)./configure、make、make install 命令
查看>>
分享Kali Linux 2017年第31周镜像文件
查看>>
03-老马jQuery教程-DOM操作
查看>>
mongodb09----replicattion set--健壮性
查看>>
sql中的笛卡尔积
查看>>
使用MEF+MVVM light+WCF RIA Service实现的Sellthrough系统
查看>>
it技能图
查看>>
jedis 2.0.0 for maven usage
查看>>
curl+sed+shell编写一个英语翻译脚本
查看>>
C Array length function problem - C / C++
查看>>
ASP.NET中26个常用性能优化方法
查看>>
Objective-C利用协议实现回调函数
查看>>
【021】VS2010实现强类型DataSet
查看>>
sqlserver 各种判断是否存在(表名、函数、存储过程.......)
查看>>
使用mssql2008新特性(存储过程参数类型使用"用户自定义表"来实现批量DML更新多表)解决项目里遇到的性能问题...
查看>>
[置顶] 深入浅出Spring(三) AOP详解
查看>>
设计模式—策略模式
查看>>