#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn=30;
int head[maxn],ip,indegree[maxn];
int n,m,seq[maxn];
struct note
edge[maxn*maxn];
void init()
void addedge(int u,int v)
int topo()///拓撲,可做模板
int k=0;
bool res=false;
while(!q.empty())
}if(kreturn -1;///存在有向環,總之不能進行拓撲排序
if(res)return
0;///可以進行拓撲排序,並且只有唯一一種方式,seq陣列即是排序完好的序列
return
1;///可以進行拓撲排序,有多種情況,seq陣列是其中一種序列
}
模板 拓撲排序
拓撲排序 將 小於 關係看做有向圖,形成一條排好序的關係,可能不唯一。queue實現,vector儲存 const int maxn 10005 int in maxn sum,n,m,fa maxn vectorg maxn void init void toposort 按字典序輸出 改為pri...
拓撲排序模板
演算法步驟 1.從aov網中選擇乙個沒有前驅的頂點 該定點的入度為0 並且輸出它 2.從aov網中選刪除該頂點,並且刪除以該頂點為尾的全部有向邊。3.重複上述兩步,知道剩餘的網中不再存在沒有直接前驅的頂點為止。hdu1285 include include include include inclu...
拓撲排序 模板
topsort 只適用於有向無環圖 關鍵思想 每次找只有出邊的點,刪掉該點和他所有的出邊 拓撲內部的記錄關鍵路徑的過程需要根據題意修改 by acermo include include include include include include includeusing namespace s...