Coloring Edges 拓撲判環

2022-07-01 08:45:10 字數 1163 閱讀 5437

題目大意:

1.給出一張有向圖,給該圖塗色,要求同乙個環裡的邊不可以全部都為同一種顏色。問最少需要多少顏色,並輸出各邊的塗色。

解題思路:

1.多畫幾張圖就發現,顏色種類只會是1或者2。當不存在環的時候,全部塗1。當存在環的時候,環中可以分成兩種邊(小節點指向大節點塗1,大節點指向小節點塗2),就會發現所有的環顏色一定不會全部相同。

2.思考過1就發現這道題只需要判斷是否存在環即可。可以用拓撲判斷。原理為:在拓撲的過程中,入度為0的點會入隊,但由於環上各點入度不可能為0.因此無法入隊。所以在拓撲結束後,還存在沒有入隊的點,即存在環。

1 #include2 #include

3 #include4

#define mem(a, b) memset(a, b, sizeof(a))

5const

int maxn = 5100;6

const

int maxm = 5100;7

using

namespace

std;89

intn, m;

10int head[maxn], cnt, in[maxn], out

[maxn], tot;

11 queueq;

1213

struct

edge

14edge[maxm];

1718

void add(int a, int

b)19

2627

inttopo()

2836

}

37while(!q.empty())

3850}51

}52if(tot != n) //

存在 點 沒有入隊

53return1;

54else

55return0;

56}5758

intmain()

5969

if(topo()) //

判是否有環存在

7084

else

8591

}92 printf("\n"

);93}94

else

95101

return0;

102 }

view code

MPI的拓撲(虛擬拓撲和笛卡爾拓撲)

mpi graph create和mpi cart create函式分別用於產生通常 圖 的虛擬拓撲和笛卡爾拓撲 虛擬拓撲 虛擬拓撲可以用圖來表示,每個程序代表乙個點,兩點之間的連線代表通訊聯通,但是注意mpi在任意兩個程序之間都可通訊,未連線的兩點之間不代表無法進行通訊。但是虛擬拓撲有個很致命的缺...

AOV網路 拓撲排序 拓撲序列

aov網是有向圖的一類應用,在aov網中,用頂點表示某個有一定規模的 工程 裡的不同活動,用圖中的邊表示各項活動之間的先後順序關係。一種常見的aov網例項是大學課程的先修關係,以下 列出了計算機專業若干課程及其先修課程 課程編號 課程名稱 先修課程 c1高等數學 c2程式設計基礎 c3資料結構 c1...

python 拓撲排序 Python 拓撲排序

python 拓撲排序 在圖論中,由乙個有向無環圖的頂點組成的序列,當且僅當滿足下列條件時,稱為該圖的乙個拓撲排序 英語 topological sorting 每個頂點出現且只出現一次 若a在序列中排在b的前面,則在圖中不存在從b到a的路徑。print 拓撲排序結果 g.topologicalso...