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

    UVA10054 The Necklace

    链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18806

    【思路】

      欧拉回路。

      把每一种颜色看作结点,每一个珠子看作边,构图后求欧拉回路即用所有的珠子构成一条项链。

      需要注意的是ans的加入是逆序的,G记录的是边出现的次数。

    【代码】

     1 #include<cstdio>
     2 #include<queue>
     3 #include<vector>
     4 #include<cstring>
     5 #define FOR(a,b,c) for(int a=(b);a<=(c);a++)
     6 using namespace std;
     7 
     8 const int maxn = 50+10;
     9 const int N=50;
    10 struct Node{
    11     int u,v;
    12 };
    13 int n,m;
    14 int deg[maxn],G[maxn][maxn];
    15 
    16 vector<Node> ans;
    17 void euler(int u) {
    18     FOR(v,1,N) if(G[u][v]) {
    19               G[u][v]--; G[v][u]--;
    20               euler(v);
    21               ans.push_back((Node){u,v});
    22        }
    23 }
    24 
    25 int main() {
    26     int T,kase=0;
    27     scanf("%d",&T);
    28     while(T--)
    29     {
    30         memset(deg,0,sizeof(deg));
    31         memset(G,0,sizeof(G));
    32         scanf("%d",&n);
    33         int u,v,start=-1;
    34         FOR(i,1,n) {
    35             scanf("%d%d",&u,&v);
    36             G[u][v]++; G[v][u]++;
    37             deg[u]++; deg[v]++;
    38             start=u;
    39         }
    40         bool solved=true;
    41         FOR(i,1,N)  if(deg[i]&1) { solved=false; break; }
    42         if(solved) {
    43             ans.clear();
    44             euler(start);
    45             if(ans.size()!=n || ans[0].v!=ans[ans.size()-1].u) solved=false;  //注意ans是逆序 
    46         }
    47         printf("Case #%d
    ",++kase);
    48         if(!solved) printf("some beads may be lost
    ");
    49         else
    50            for(int i=ans.size()-1;i>=0;i--) printf("%d %d
    ",ans[i].u,ans[i].v);
    51         if(T) putchar('
    ');
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    Bank4
    Bank3
    Bank2
    Bank1
    Kubernetes核心技术Service
    kubernetes的Pod
    kubernetes如何快速编写yaml文件
    Kuberbetes的Secret
    Kuberbetes的Job和CronJob
    Kuberbetes的DaemonSet
  • 原文地址:https://www.cnblogs.com/lidaxin/p/4915005.html
Copyright © 2011-2022 走看看