首页 > 其他 > 详细

环 快完成了

时间:2017-02-20 18:25:38      阅读:194      评论:0      收藏:0      [点我收藏+]
#include<iostream>
int num,zu;
int a[50][2]={0};
int visit[11]={0};
int data[11][11]={0};
int tou=0;
int wei=1;
int last;
int flag=0;
int k=0;
int d[11][11]={0};
typedef struct node
{
    int x;
    int pre;

}node;
node point[10000]={0};
int l=0;
int b[1000]={0};
void prin(int i)
{
     if(i==-1)
      return;
     //printf("(%d,%d)\n",dui[i].x ,dui[i].y );
	prin(point[i].pre);
	b[l]=point[i].x;
	l++;
    //printf("%d",point[i].x);     
}
void p(int i)
{
	if(i==-1)
      return;
	p(point[i].pre);
    printf("%d",point[i].x);     
}

int panduan(int k)
{   

	for(int i=k-1;k>=0;k--)
	{
		if(b[i]==b[k])
		{
			 return 1;
		}
	}
	return 0;

}
void bfs()
{	 
	int tou=0;
	int wei=1;
    while(tou<wei)
    {       
		last=tou;
		prin(tou);
		  if(panduan(l))
		  { 
			  flag=1;
			  p(tou);
		  }
		l=0;
	
		for(int i=0;i<10;i++)
			b[i]=0;
            
        for(int k=1;k<=num;k++)
        {
            if(data[point[tou].x][k]==1)
             {      
                data[point[tou].x][k]=0;
                point[wei].x=k;
                //printf("%d",point[wei].x);
                point[wei].pre=tou;
                wei++;      
             }      
        }
        tou++;
	}
}

int main()

{     freopen("input.txt","r",stdin);
      scanf("%d%d",&num,&zu);
       for(int i=0;i<zu;i++)
         {
             for(int j=0;j<2;j++)
            {  scanf("%d",&a[i][j]);}
         }
       for(int i=0;i<=zu;i++)
        {
        data[a[i][0]][a[i][1]]=1;
        }
       for(int i=1;i<=num;i++)
       {
           for(int j=1;j<=num;j++)
           {
               d[i][j]=data[i][j];
           }
      }
       for(int i=1;i<=num;i++)
           for(int j=1;j<=num;j++)
           {   
               if(flag==0){
                        if(data[i][j]==1)
                            {    
                               //data[i][j]=0;
										 for(int u=1;u<=num;u++)
			                                  {
				                              for(int t=1;t<=num;t++)
				                              {
					                              d[u][t]=data[u][t];
				                               }
				                               
			                                   }
								int tou=0;
                            point[tou].x=i;
                            point[tou].pre=-1;		 
                           bfs();
						  
                            }
                           }
           } 

}

 

环 快完成了

原文:http://www.cnblogs.com/dahuacarry/p/6420666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!