在有向圖中,對於確定起點求一條字典序最小的尤拉跡
hierholzer演算法求解尤拉跡
建圖加邊後對每個點的出邊進行排序
dfs,每次搜尋後標記當前邊不能再次通過
無路可走時將當前點加入棧中,回溯
將棧內的點逆序輸出即可
#include
const
int maxn =
1e7+50;
mapint>id;
map<
int,string>name;
vectoreuler_road;
vectorint,
int>
>e[maxn]
;bool vis[maxn]
;int tot =1;
bool
cmp(pair<
int,
int> a,pair<
int,
int> b)
return p.
size()
< q.
size()
;}void
dfs(
int u)
euler_road.
push_back
(name[u]);
}vectorres;
class
solution
if(id.
find
(y)== id.
end())
e[id[x]].
push_back
(make_pair
(id[y]
,++tot));
e[id[y]].
push_back
(make_pair
(id[x]
,++tot));
}for
(int i =
1; i <= n ; i ++
)int s =0;
for(
int i =
1; i <= n ; i++)}
dfs(s)
;for
(int i = euler_road.
size()
-1; i >=
0; i --
)return res;}}
;
Leetcode 332 重新安排行程
給定乙個機票的字串二維陣列 from,to 子陣列中的兩個成員分別表示飛機出發和降落的機場地點,對該行程進行重新規劃排序。所有這些機票都屬於乙個從 jfk 甘迺迪國際機場 出發的先生,所以該行程必須從 jfk 出發。說明 如果存在多種有效的行程,你可以按字元自然排序返回最小的行程組合。例如,行程 j...
leetcode 332 重新安排行程
332.重新安排行程 給定乙個機票的字串二維陣列 from,to 子陣列中的兩個成員分別表示飛機出發和降落的機場地點,對該行程進行重新規劃排序。所有這些機票都屬於乙個從 jfk 甘迺迪國際機場 出發的先生,所以該行程必須從 jfk 開始。說明 如果存在多種有效的行程,你可以按字元自然排序返回最小的行...
LeetCode 332 重新安排行程
題意 給定乙個機票的字串二維陣列 from,to 子陣列中的兩個成員分別表示飛機出發和降落的機場地點,對該行程進行重新規劃排序。所有這些機票都屬於乙個從 jfk 甘迺迪國際機場 出發的先生,所以該行程必須從 jfk 開始。說明 如果存在多種有效的行程,你可以按字元自然排序返回最小的行程組合。例如,行...