題目大意:
1.給出一張有向圖,給該圖塗色,要求同乙個環裡的邊不可以全部都為同一種顏色。問最少需要多少顏色,並輸出各邊的塗色。
解題思路:
1.多畫幾張圖就發現,顏色種類只會是1或者2。當不存在環的時候,全部塗1。當存在環的時候,環中可以分成兩種邊(小節點指向大節點塗1,大節點指向小節點塗2),就會發現所有的環顏色一定不會全部相同。
2.思考過1就發現這道題只需要判斷是否存在環即可。可以用拓撲判斷。原理為:在拓撲的過程中,入度為0的點會入隊,但由於環上各點入度不可能為0.因此無法入隊。所以在拓撲結束後,還存在沒有入隊的點,即存在環。
1 #include2 #includeview code3 #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 }
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...