給定變量集合(如 {a,b,c,d})和若干約束 x
變量為節點,約束 xx→y。求所有拓撲序列。
int n; vector G[26]; int indeg[26];
bool used[26]; char order[26]; int idx;
void dfs() {
if (idx == n) { print(order); return; }
for (int i=0; i
{a,c,f}),需映射到 0..n-1。最壞 O(n!),但 n ≤ 20 且約束通常較多,實際搜索樹很小。POJ 1270 數據極弱,DFS 直接過。