染色法

来源:互联网 发布:mac无线键盘出现乱键 编辑:程序博客网 时间:2024/03/29 13:51
bool bicolorable(){//染色法   方镪    queue<int>Q;    color[0]=1;    Q.push(0);    while(!Q.empty()){        int v1 = Q.front();        Q.pop();        for(int i=0;i<G[v1].size();i++)        {            int v2 =G[v1][i];            if(color[v2]==0){ //情况1                color[v2]=-color[v1];                Q.push(v2);            }            else if(color[v2]==color[v1]){ //情况2                return false;            }        }    }    return true;} int bipartite(int s) {    王琦        int u, v;          queue<int>Q;          color[s] = 1;          Q.push(s);          while (!Q.empty()) {              u = Q.front();              Q.pop();              for (int i = 0; i < G[u].size(); i++) {                  v = G[u][i];                  if (color[v] == 0) {                      color[v] = -color[u];                      Q.push(v);                  }                  else if (color[v] == color[u])                      return 0;              }          }          return 1;      }  
0 0
原创粉丝点击