http://poj.org/problem?id=1094

#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int in[27],out[27];
char index[27];
bool vis[27];
int mem[27][27];
int n,m;
int tlen;
bool floyd(){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
if(mem[i][k]&&mem[k][j])mem[i][j]=1;
}
}
}
for(int i=1;i<n;i++){
if(mem[i][i])return false;
}
return true;
}
bool calc(){
memset(in,0,sizeof(in));
memset(out,0,sizeof(out));
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(mem[i][j]==1){
out[i]++;
in[j]++;
}}
}
for(int i=0;i<n;i++){
if(in[i]+out[i]!=n-1)return false;
}
return true;
}
bool topologicalsort(){
memset(vis,0,sizeof(vis));
int len=0;
bool fl=false;
while(len<n){
fl=false;
for(int i=0;i<n;i++){
if(in[i]==0&&!vis[i]){
fl=true;
vis[i]=true;
index[len]=i+'A';
len++;
for(int j=0;j<n;j++){
if(mem[i][j])in[j]--;
}
break;
}
}
if(!fl)return false;
}
return true;
}
int main(){
char ch,ch2;
while (scanf("%d %d",&n,&m)==2&&n){
bool fl=false;
getchar();
memset(mem,0,sizeof(mem));
memset(index,0,sizeof(index));
for(int i=1;i<=m;i++){
scanf(" %c< %c",&ch,&ch2);
in[ch2-'A']++;
out[ch-'A']++;
mem[ch-'A'][ch2-'A']=1;
getchar();
if(fl)continue;
if(floyd()){
if(calc()){
if(topologicalsort()){
fl=true;
index[n]=0;
printf("Sorted sequence determined after %d relations: %s.\n",i,index);
continue;
}
}
}
else {
printf("Inconsistency found after %d relations.\n",i);
fl=true;
continue;
}
}
if(!fl)printf("Sorted sequence cannot be determined.\n");
}
return 0;
}

  

POJ 1094 Sorting It All Out 拓扑排序 难度:0的更多相关文章

  1. ACM: poj 1094 Sorting It All Out - 拓扑排序

    poj 1094 Sorting It All Out Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%lld & ...

  2. poj 1094 Sorting It All Out (拓扑排序)

    http://poj.org/problem?id=1094 Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  3. [ACM_模拟] POJ 1094 Sorting It All Out (拓扑排序+Floyd算法 判断关系是否矛盾或统一)

    Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...

  4. POJ 1094 Sorting It All Out (拓扑排序) - from lanshui_Yang

    Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...

  5. poj 1094 Sorting It All Out_拓扑排序

    题意:是否唯一确定顺序,根据情况输出 #include <iostream> #include<cstdio> #include<cstring> #include ...

  6. PKU 1094 Sorting It All Out(拓扑排序)

    题目大意:就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列. 是典型的拓扑排序,但输出格式上确有三种形式: 1.该字母序列有序,并依次输出: 2.判断该序列是否唯一: 3.该序列字母次序之间 ...

  7. POJ 1094 Sorting It All Out(拓扑排序+判环+拓扑路径唯一性确定)

    Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39602   Accepted: 13 ...

  8. [ACM] POJ 1094 Sorting It All Out (拓扑排序)

    Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 26801   Accepted: 92 ...

  9. POJ 1094:Sorting It All Out拓扑排序之我在这里挖了一个大大的坑

    Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 29984   Accepted: 10 ...

随机推荐

  1. js_css_dl.dt实现列表展开、折叠效果

    第一种方式:不提倡 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  2. vsftpd.conf 怎么保存

    引用:http://zhidao.baidu.com/question/169939742.html vsftpd.conf 用vim编辑后如何保存?网上很多我都看了 esc 然后shift+ 不好使 ...

  3. MongoDB数据库基本用法

    show dbs:显示数据库列表  show collections:显示当前数据库中的集合(类似关系数据库中的表)  show users:显示用户 use <db name>:切换当前 ...

  4. atomic vs. nonatomic

    Declaring a property atomic makes compiler generate additional code that prevents concurrent access ...

  5. PHP Socket 编程过程详解

    使用代码 目的:开发一个客户端用于发送string消息到服务端,服务端将相同的信息反转后返回给客户端. PHP服务器 第1步:设置变量,如“主机”和“端口” $host = "127.0.0 ...

  6. runoob

    今天学习bootstrap的时候偶然发现http://www.runoob.com/ 这个网站不错,比w3cschool界面要好看,内容要丰富 比较适合新手学习,而且上面的内容比较丰富,不错.

  7. 游戏引擎PushButtonEngine简介

    PushButtonEngine是一个开源的模块化游戏引擎,你可以通过https://github.com/PushButtonLabs/PushButtonEngine得到其代码和相关文档.下面我将 ...

  8. WPFのInkCanvas作为蒙版透明笔迹不透明

    本人最近利用inkcavas做一个蒙版的功能,结果发现笔迹稀释了,经过一番查找发现:应该讲inkcavas的背景设置为白色,然后透明,而不是将整个控件透明,具体代码: <InkCanvas Na ...

  9. [poj2777] Count Color (线段树 + 位运算) (水题)

    发现自己越来越傻逼了.一道傻逼题搞了一晚上一直超时,凭啥子就我不能过??? 然后发现cin没关stdio同步... Description Chosen Problem Solving and Pro ...

  10. 在网上看到的一篇文章关于js和php编码的

    解决办法: 采用js对URL中的汉字进行escape编码. <a href="" onclick="window.open('product_list.php?p_ ...