UVA 10054 - The Necklace 欧拉回路

2014-11-24 08:38:25 · 作者: · 浏览: 0

题目大意:

有一种由彩色珠子组成的项链,每个珠子的两半由不同的颜色组成,相邻的两个珠子在接触的地方颜色相同。现在有一些零碎的珠子,需要你确认是否可以复原,并且输出其中一种复原方案。

思路:

第一道欧拉回路的题。

思路很巧妙,把每个珠子的颜色看成点(注意是颜色!)而珠子则看成连接这两个点的边。

那么就转化为求欧拉回路了~

#include
  
   
#include
   
     #include
    
      using namespace std; const int MAXN=52; int map[MAXN][MAXN],d[MAXN]; struct edge { int from,to; edge(int from,int to): from(from),to(to){} }; vector 
     
       ans; void euler(int cur) { for(int i=1;i
      
       =0;i--) printf(%d %d , ans[i].from, ans[i].to); } } return 0; }