三元環計數

2022-02-27 07:00:09 字數 521 閱讀 7954

也許更好的閱讀體驗

給一張\(n\)個點,\(m\)條邊的簡單無向圖,求解有多少個三元環

三元環:乙個三元組\(\left(i,j,k\right)\)表示三個點,要求存在邊\(\left(i,j\right),\left(i,k\right),\left(j,k\right)\)

我們先把每個點\(i\)定義乙個雙關鍵字\(\left(deg_i,id_i\right)\),其中\(deg_i,id_i\)分別表示\(i\)點的度數與編號,這樣每個點就有了嚴格的大小關係

然後我們將這張無向圖轉變為有向圖:把所有的邊\(\left(i,j\right)\)改為由關鍵字大的點向關鍵字小的點連邊,這樣我們就可以得到一張有向無環圖

找環分為三步

這樣做就保證了每個環只會被\(i\)所找到

時間複雜度,最高為\(o\left(m\sqrt\right)\)

如有**講得不是很明白或是有錯誤,歡迎指正

如您喜歡的話不妨點個贊收藏一下吧

三元環計數

參考部落格 洛谷模板 無向圖三元環計數 將無向圖轉化成有向圖,度大的指向度小的,若度一樣,按照編號排序。列舉每個點x,將x的所有相鄰點標記,然後列舉x的相鄰點y,再列舉y的相鄰點z,如果z已經被標記,那麼 x,y,z 就是如圖示的三元環。複雜度 o n sqrt n includeusing nam...

三元環 四元環計數

這東西其實就是一種暴力,只不過巧妙的是每乙個環恰好統計了一次。三元環計數推薦一篇部落格,科技 三元環計數,很詳細,很清楚。每乙個三元環之所以被算了一次,是因為乙個三元環在新圖上必定只有乙個點的出度為2,然後我們只在這個點上更新三元環數量。然後我放了個 define fore i,x,y for in...

Hdu 6184 三元環計數

題目描述 給乙個2e5點2e5邊的無向圖,求子圖 的數量。hint 考慮把所有邊定向,從度數小的點往度數大的點連,這樣每個點的出度都小於sqrt 2e5 include using namespace std typedef long long ll const int maxn 200007 in...