zoukankan      html  css  js  c++  java
  • uva 11396(二分图判定)

    题意:这道题主要是定义了一个交叫爪子的图:

    然后他会给你一个每个结点度数都是三的无向图。问你能否能否拆成爪子图。(就是分成若干个子图,原图中的每条边都只能在一张子图中出现一次,点可以重复出现)。

    思路:这道题我们可以画几个推理一下,会发现一个结论当且仅当图是而分图的时候是可以的,然后剩下来的就是染色判定了。

    代码如下:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cmath>
     5 #include <cstring>
     6 #include <algorithm>
     7 #include <queue>
     8 #include <stack>
     9 #include <vector>
    10 #define MP(a, b) make_pair(a, b)
    11 #define PB(a) push_back(a)
    12 
    13 using namespace std;
    14 
    15 typedef long long ll;
    16 typedef pair<int ,int> pii;
    17 typedef pair<unsigned int, unsigned int> puu;
    18 typedef pair<int ,double> pid;
    19 typedef pair<ll, int> pli;
    20 
    21 const int INF = 0x3f3f3f3f;
    22 const double eps = 1e-6;
    23 const int LEN = 1010;
    24 int n, vis[LEN];
    25 vector<int> Map[LEN];
    26 
    27 bool dfs(int vex, int col)
    28 {
    29     vis[vex] = col;
    30     for(int i=0; i<Map[vex].size(); i++){
    31         int nv = Map[vex][i];
    32         if(!vis[nv]){if(!dfs(nv, -col))return false;}
    33         else if(vis[nv]==col)return false;
    34     }
    35     return true;
    36 }
    37 
    38 int main()
    39 {
    40 //    freopen("in.txt", "r", stdin);
    41 
    42     int a, b;
    43     while(scanf("%d", &n)!=EOF && n){
    44         for(int i=0; i<LEN; i++)Map[i].clear();
    45         while(scanf("%d%d", &a, &b)!=EOF){
    46             if(!a && !b)break;
    47             Map[a].PB(b);Map[b].PB(a);
    48         }
    49         memset(vis, 0, sizeof vis);
    50         bool ans = true;
    51         for(int i=1; i<=n; i++)
    52             if(vis[i]==0)if(!dfs(i, 1))ans = false;
    53         if(ans) printf("YES
    ");
    54         else printf("NO
    ");
    55     }
    56     return 0;
    57 }
    View Code
    奔跑吧!少年!趁着你还年轻
  • 相关阅读:
    SuperMap开发入门1——资源下载
    去除Win10快捷图标小箭头
    MongoTemplate 分组分页复合条件查询
    mongo db 去除 _class 字段
    MongoDb 快速翻页方法
    mysql select limit 大数据量查询 性能终极提升方法
    MongoDB 数据自动同步到 ElasticSearch
    用 mongodb + elasticsearch 实现中文检索
    MySql5.7InnoDB全文索引(针对中文搜索)
    spring cloud fegin传递request header
  • 原文地址:https://www.cnblogs.com/shu-xiaohao/p/3525877.html
Copyright © 2011-2022 走看看