zoukankan      html  css  js  c++  java
  • poj 1094

    唉  这几天有点热 有点烦躁 以后能做成什么样。。。。 

    题意:给定n个字母《0+A,...n+A》 和m个关系 想x>y  问是否能唯一确定他们的大小关系

    1  在第几个关系能确定他们的排序 就输出这个位置和排序

    2 如果出现矛盾就输出矛盾的位置

    3 整个关系输入之后还不能确定则输出不能确定关系

    #include<iostream>
    #include<cstring>
    using namespace std;
    int map[55][55];
    int in[55];
    int jie[55];
    int n;
    int sort()//1  不能排序  ;  2 能排序
    {
    	int ji[55];
    	int f=2;
    //	memset(s,0,sizeof(s));
    	int i,j;
    	int x,sum;
    	for(i=1;i<=n;i++)
    		ji[i]=in[i];
    	for(i=1;i<=n;i++)
    	{
    		sum=0;
    		for(j=1;j<=n;j++)
    			if(ji[j]==0)
    			{
    				sum++;
    				x=j;
    			}
    		if(sum==0) return 1;   //是否有环
    		if(sum>1) f=0;
    		jie[i]=x;
    		ji[x]=-1;
    		for(j=1;j<=n;j++)
    			if(map[x][j])
    				ji[j]--;
    	}
    	return f;
    }
    int main()
    {
    	int yes,i;
    	char s[11];
    	int m;
    	while(cin>>n>>m)
    	{
    		yes=0;
    		if(n==0&&m==0)
    			break;
    		memset(in,0,sizeof(in));
    		memset(map,0,sizeof(map));
    		for(i=1;i<=m;i++)
    		{
    			cin>>s;
    			if(yes) continue;
    			int u=s[0]-'A'+1;
    			int v=s[2]-'A'+1;
    			if(s[1]=='<') 
    			{
    				if(map[v][u]) 
    				{
    					cout<<"Inconsistency found after "<<i<<" relations."<<endl;
    					yes=1;
    					continue;
    				}
    				map[u][v]=1;
    				in[v]++;
    			}
    			else 
    			{
    				if(map[u][v]) 
    				{
    					cout<<"Inconsistency found after "<<i<<" relations."<<endl;
    					yes=1;
    					continue;
    				}
    				map[v][u]=1;
    				in[u]++;
    			}
    			int x=sort();
    			if(x==1)
    			{	cout<<"Inconsistency found after "<<i<<" relations."<<endl;
    					yes=1;
    					continue;
    			}
    		    if(x==2)
    			{
    				cout<<"Sorted sequence determined after "<<i<<" relations: ";
    				for(int j=1;j<=n;j++)
    					cout<<(char)(jie[j]-1+'A');
    				cout<<'.'<<endl;
    				yes=1;
    			}
    		}
    	
    		if(!yes)
    			cout<<"Sorted sequence cannot be determined."<<endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    Java集合:HashMap
    Java线程池原理
    Linux常用命令
    分布式系统基本概念
    接口中的default方法(默认方法)
    正则表达式匹配+过滤
    Java Optional类
    mongo过期索引
    Java8函数式接口简介
    JS版微信6.0分享接口用法分析
  • 原文地址:https://www.cnblogs.com/zhangdashuai/p/3778274.html
Copyright © 2011-2022 走看看