美文网首页
Uva(11396)(Claw Decomposition)

Uva(11396)(Claw Decomposition)

作者: kimoyami | 来源:发表于2018-08-12 13:12 被阅读13次

    链接:https://vjudge.net/problem/UVA-11396
    思路:二分图匹配,哎看不出来啊,说一下思路吧,如果确定某个点为爪点,那么它身边的三个点一定是附点,附点之间又不可能相连,所以附点连接的又一定是爪点,这不就是二分图匹配吗.........
    代码:

    #include<cstdio>
    #include<cstring>
    #include<vector>
    using namespace std;
    
    const int maxn = 301;
    vector<int> G[maxn];
    int n;
    int color[maxn];
    
    bool bipatirate(int u){
    for(int i=0;i<G[u].size();i++){
        int v = G[u][i];
        if(color[v]==color[u])return false;
        if(!color[v]){
        color[v] = 3-color[u];
        if(!bipatirate(v))return false;
        }
        }
        return  true;
    }
    
    int main(){
        //freopen("in.txt","r",stdin);
        //freopen("out.txt","w",stdout);
    while(scanf("%d",&n)&&n){
        memset(color,0,sizeof(color));
        for(int i=0;i<n;i++)G[i].clear();
    int a,b;
    while(scanf("%d%d",&a,&b)&&(a||b)){
        a--;
        b--;
        G[a].push_back(b);
        G[b].push_back(a);
    }
    color[0] = 1;
    if(bipatirate(0))printf("YES\n");
    else printf("NO\n");
    }
    return 0;
    }
    

    相关文章

      网友评论

          本文标题:Uva(11396)(Claw Decomposition)

          本文链接:https://www.haomeiwen.com/subject/nmjsbftx.html