返回列表 發帖
#include<iostream>
#include<fstream>
#include<vector>

using namespace std ;
const int M = 9999 ;

int main()
{
    ifstream fin( "a.in" ) ;
    ofstream fout( "a.out" ) ;
   
    int x , y ;        
    fin >> x >> y ;
    int map[x][x] ;
    int visit[x] ;
    vector<int> vi ;   
        
    for( int i = 0 ; i < x ; i ++ )
    {
        for( int j = 0 ; j < x ; j ++ )
        {
            map[i][j] =  M ;
        }
        visit[i] = false ;
    }
   
    for( int i = 0 ; i < y ; i ++ )
    {
         int u,v ;
         fin >> u >> v ;
         map[u][v] = 1 ;
         map[v][u] = 1 ;
    }
   
/*    for( int i = 0 ; i < x ; i ++ )
    {
        for( int j = 0 ; j < x ; j ++ )
        {
            cout << map[i][j] << "\t" ;
        }
        cout << endl ;
    }   */

    for( int i = 0 ; i < x ; i ++ )
    {
         if( !visit[i] )
         {
             vi.push_back( i ) ;
             visit[i] = true ;
             while( !vi.empty() )
             {
                 int t = vi.front() ;
                 cout << vi.front() << "\t" ;
                 vi.erase( vi.begin() ) ;
                 for( int j = 0 ; j < x ; j ++ )
                 {
                     if( !visit[j] && map[t][j] != M )
                     {
                        
                         vi.insert( vi.end() , j ) ;
                         visit[j] = true ;
                     }
                 }      
             }
         }
    }

    system( "Pause" ) ;   
}

TOP

先貼先贏

TOP

返回列表