题目大意:
有一种由彩色珠子组成的项链,每个珠子的两半由不同的颜色组成,相邻的两个珠子在接触的地方颜色相同。现在有一些零碎的珠子,需要你确认是否可以复原,并且输出其中一种复原方案。
思路:
第一道欧拉回路的题。
思路很巧妙,把每个珠子的颜色看成点(注意是颜色!)而珠子则看成连接这两个点的边。
那么就转化为求欧拉回路了~
#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; }