博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

P98 图 两色染色

Posted on 2016-03-02 18:55  shaoweiyi  阅读(165)  评论(0)    收藏  举报
///图的搜索:两色染色问题

vector<int>G[MAX_V];
color[MAX_V];
bool dfs (int i,int c)
{
    color[i]=c;
    for(int j=0;i<G[i].size();j++)
    {
        if(color[ G[i][j] ]==c) return false; 
        if(color[ G[i][j] ]==0&&!dfs( G[i][j],-c )   )  return false;
    }
    return true;
}


void solve()
{
for(int i=0;i<num_v;i++)
{
    if(!color[i])
    {
       if(!dfs(0,1))
    {
     cout<<"No"<<endl; 
     return;  
    } 
    } 
}

 cout<<"Yes"<<endl;
}