拓撲排序的應用(zoj3780

2021-07-11 11:36:45 字數 1146 閱讀 3421

題意就是塗點,每行每列只能塗一次,每一次能夠塗滿每行或者每一列。因題目要求字典序,把每列看做1~n來塗,每列看做n+1~2*n。然後按照拓撲排序建圖,就是一般拓撲排序的應用

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define mod 0x7fffffff;

#define mod 65537;

using

namespace

std;

typedef

long

long ll;

const

int n=1e9+7;

int t,n,r[505],v[505],flag[1005];

int vis[1005][1005],tot[1005];

char ss[505][505],ss1[505][505];

vector

ans,g[1005];

struct cmp

};priority_queue,cmp>st;//優先佇列的應用

void init()

int main()

for(j=1;j<=n;j++)

for(i=1;i<=n;i++)

else

}for(j=1;j<=n;j++)

else

}for(i=1;i<=2*n;i++)

for(j=1;j<=2*n;j++)

}for(i=1;i<=2*n;i++) if(tot[i]==0&&flag[i]!=0) st.push(i);//flag用於排除不需要操作的行和列

while(!st.empty())

}int fg=0;

for(i=1;i<=2*n;i++)

if(tot[i]!=0)

if(fg==1)

cout

<<"no solution"

cout

0;}

拓撲排序的應用

adjlist.h有向無環圖的鄰接表儲存結構 include include include define max vertex num 10 define max name 10 typedef char vertexdata max name typedef struct arcnode arc...

拓撲排序及其應用

拓撲排序及其應用 1.拓撲排序的介紹 對於乙個有向無環圖g v,e 來說,其拓撲排序是g中所有結點的一種線性次序。該次序滿足如下條件 如果圖g包含邊 u,v 則結點u在拓撲排序中處於結點v的前面 如果圖g包含環路,則不可能排出乙個線性次序。可以將圖的拓撲排序看作是將圖的所有結點在一條水平線上排開,圖...

拓撲排序簡介及其應用

拓撲排序是資料結構圖論中的一點內容。拓撲排序主要用來解決有向圖中的依賴解析 dependency resolution 問題。這裡主要寫幾個模板 題目鏈結 include include using namespace std const int m 505 int raod m m p m int...