題目大意:
有一種由彩色珠子組成的項鏈,每個珠子的兩半由不同的顏色組成,相鄰的兩個珠子在接觸的地方顏色相同。現在有一些零碎的珠子,需要你確認是否可以復原,並且輸出其中一種復原方案。
思路:
第一道歐拉回路的題。
思路很巧妙,把每個珠子的顏色看成點(注意是顏色!)而珠子則看成連接這兩個點的邊。
那麼就轉化為求歐拉回路了~
#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; }