Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

写得不好 贴个代码

Posted by 452181625 at 2014-05-20 22:48:50 on Problem 1094
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int n,m,nown,flag1,flag2;
int mpt[30][30],rul[30],path[30],cal[30];
void search()
{
    int i,total=0;
    queue<int> q;
    for(i=1;i<=n;i++)
        if(!rul[i])
        {
            q.push(i);
            path[++total]=i;//flag1=1表示不确定。
        }
		if(total>1) flag1=1;
		while(!q.empty())
		{
			int everytime=0;
			int p=q.front();
			q.pop();
            for(i=1;i<=n;i++)
            {
				if(p==i||mpt[p][i]==0) continue;
                mpt[p][i]=0;
                rul[i]--;
                if(!rul[i] && cal[i])
				{
					q.push(i);
					path[++total]=i;
					everytime++;
				}
			}
			if(everytime>1) flag1=1;//flag1=1表示不确定。
		}
		if(total<nown) flag2=1;//flag2=1表示有回路。
}
int main()
{
	int c[1005],r[1005],i,j;
	while(scanf("%d%d",&n,&m)!=EOF,n,m)
	{
		for(i=1;i<=m;i++)
		{
			char a,b,ch;
			cin>>a>>ch>>b;
			c[i]=a-'A'+1;
			r[i]=b-'A'+1;
		}
		for(i=1;i<=m;i++)
		{
			nown=flag1=flag2=0;//初始化,依次代表现有图的节点个数,是否不确定,是否有回路。
			memset(mpt,0,sizeof(mpt));
			memset(rul,0,sizeof(rul));
			memset(cal,0,sizeof(cal));
			for(j=1;j<=i;j++)//建图。
			{
				cal[r[j]]=cal[c[j]]=1;
				mpt[c[j]][r[j]]=1;
				rul[r[j]]++;
			}
			for(j=1;j<=30;j++)
				if(cal[j]) nown++;//计算现有节点个数。
				search();
				if(flag1!=1 &&flag2!=1)//如果没有回路,确定。
				{
					cout<<"Sorted sequence determined after "<<i<<" relations: ";
					for(j=1;j<=n;j++)
						cout<<char(path[j]+'A'-1);
					cout<<".\n";
					break;
				}
				else if(flag2==1)//如果有回路。
				{
					cout<<"Inconsistency found after "<<i<<" relations.\n";
					break;
				}
		}
		if(flag2!=1 && flag1==1)//如果不确定。
			cout<<"Sorted sequence cannot be determined.\n";
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator