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

Re:为什么我的一直WA,这不就是拓扑排序吗???

Posted by peijian at 2012-11-19 18:56:09 on Problem 1270
In Reply To:为什么我的一直WA,这不就是拓扑排序吗??? Posted by:panning025 at 2012-07-19 09:58:04
> #include<iostream>
> using namespace std;
> int indegree[20]={0};//入度数组
> char vex[20];//节点数组
> bool v[20]={0};//标记数组,标记节点是否已访问
> int len;//节点个数
> char stack[20];//存放结果的栈
> int top=-1;
> bool bian[20][20]={0};//存放边
> 
> void Iopo_Sort(int &sum)//拓扑排序(递归)
> {
> 	int i,j;
> 	if(sum==300)return;
> 	if(top==len-1)
> 	{
> 		for(i=0;i<len;i++)cout<<stack[i];
> 		cout<<endl;
> 		sum++;
> 		return;
> 	}
> 	for(i=0;i<len;i++)
> 	{
> 		if(indegree[i]==0&&!v[i])
> 		{
> 			stack[++top]=vex[i];
> 			v[i]=1;
> 			for(j=0;j<len;j++)
> 				if(bian[i][j])indegree[j]--;
> 
> 			Iopo_Sort(sum);
> 
> 			//===恢复记录==============
> 
> 			for(j=0;j<len;j++)
> 				if(bian[i][j])indegree[j]++;
> 			v[i]=0;
> 			top--;
> 		}
> 	}
> }
> int main()
> {
> 	int i=0,j=0,k=0,sum=0;
> 	char c[210],d[110];
> 	while(gets(c))
> 	{
> 		
> 		//=============处理节点===========
> 		i=0;
> 		j=0;
> 		while(c[i]!='\0')
> 		{
> 			if(c[i]!=' ')vex[j++]=c[i++];
> 			else i++;
> 		}
> 		len=j;
> 		//========================
> 		//===========处理边和入度=============
> 		gets(c);
> 		
> 		k=0;
> 		i=0;
> 		while(c[k]!='\0')
> 		{
> 			if(c[k]==' ')k++;
> 			else
> 				d[i++]=c[k++];
> 		}
> 		char e,f,t1;
> 		for(j=0;j<i;j++)
> 		{
> 			e=d[j++];
> 			f=d[j];
> 			for(t1=0;t1<len;t1++)if(vex[t1]==e)break;
> 			for(k=0;k<len;k++)if(vex[k]==d[j]){indegree[k]++;break;}
> 			bian[t1][k]=1;	
> 		}
> 		//=======================================
> 		sum=0;
> 		Iopo_Sort(sum);
> 
> 		//================清理记录=========================
> 		for(i=0;i<20;i++)memset(bian,0,sizeof(bian));
> 		memset(v,0,20);
> 		memset(indegree,0,sizeof(indegree));
> 		top=-1;
> 		//===========================================
> 		
> 	}
> 	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