zoukankan      html  css  js  c++  java
  • The Necklace UVA

    The Necklace

     UVA - 10054 

    题意:每个珠子有两个颜色,给n个珠子,问能不能连成一个项链,使得项链相邻的珠子颜色相同。

    把颜色看做点,珠子内部连一条边,无向图求欧拉回路。

    这里我用的并查集。

    输出路径就dfs就行了

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int g[55][55];
     4 int f[55];
     5 int deg[55];
     6 int n;
     7 
     8 int gf(int x)
     9 {
    10   return x==f[x]?x:f[x]=gf(f[x]);
    11 }
    12 
    13 void dfs(int u)
    14 {
    15     for(int i=1;i<=50;i++) if(g[u][i])
    16     {
    17         g[u][i]--;
    18         g[i][u]--;
    19         dfs(i);
    20         printf("%d %d
    ",i,u);
    21     }
    22 }
    23 int main()
    24 {
    25     int t;
    26     int kase=0;
    27     scanf("%d",&t);
    28     while(t--)
    29     {
    30         for(int i=0;i<=55;i++) f[i]=i;
    31         memset(deg,0,sizeof(deg));
    32         memset(g,0,sizeof(g));
    33         scanf("%d",&n);
    34         int u,v;
    35         for(int i=0;i<n;i++)
    36         {
    37             scanf("%d%d",&u,&v);
    38             g[u][v]++;
    39             g[v][u]++;
    40             deg[u]++;
    41             deg[v]++;
    42             int pu=gf(u);
    43             int pv=gf(v);
    44             if(pu!=pv) f[pu]=pv;
    45         }
    46         if(kase) puts("");
    47         printf("Case #%d
    ",++kase);
    48         int rt=0;
    49         int flag=1;
    50         for(int i=1;i<=50;i++) if(deg[i])
    51         {
    52             if(deg[i]&1) {
    53                 flag=0;
    54                 break;
    55             }
    56             if(rt==0) rt=gf(i);
    57             else{
    58                 int v=gf(i);
    59                 if(v!=rt) {
    60                     flag=0;
    61                     break;
    62                 }
    63             }
    64         }
    65         if(flag)
    66         {
    67             dfs(rt);
    68         }
    69         else puts("some beads may be lost");
    70     }
    71 }
    View Code
  • 相关阅读:
    极验滑动验证码
    保利威视频播放
    Redis
    DRF 解析器和渲染器
    DRF 分页组件
    DRF 权限和频率
    Nginx反向代理
    Laravel使用反向migrate 和 iseed扩展导出表数据
    psr规范发展历程
    supervisor
  • 原文地址:https://www.cnblogs.com/yijiull/p/7435132.html
Copyright © 2011-2022 走看看