三元環計數

2022-06-08 21:57:16 字數 805 閱讀 2983

參考部落格

洛谷模板

無向圖三元環計數

將無向圖轉化成有向圖,度大的指向度小的,若度一樣,按照編號排序。

列舉每個點x,將x的所有相鄰點標記,然後列舉x的相鄰點y,再列舉y的相鄰點z,

如果z已經被標記,那麼(x,y,z)就是如圖示的三元環。

複雜度 : \(o(n\sqrt n)\)

#includeusing namespace std;

#define rep(i,a,b) for(int i = a;i <= b;i++)

#define repe(i,u) for(int i = head[u];i;i = e[i].next)

int n, m;

const int n = 1e5 + 10;

const int m = 2e5 + 10;

struct edge e[m];

int head[n], tot;

void addedge(int from, int to) ;

head[from] = tot;

}int deg[n], s[m], t[m];

int vis[n];

int main()

for (int i = 0; i < m; i++)

int ans = 0;

rep(u, 1, n)

}} }

printf("%d\n", ans);

}

三元環計數

也許更好的閱讀體驗 給一張 n 個點,m 條邊的簡單無向圖,求解有多少個三元環 三元環 乙個三元組 left i,j,k right 表示三個點,要求存在邊 left i,j right left i,k right left j,k right 我們先把每個點 i 定義乙個雙關鍵字 left de...

三元環 四元環計數

這東西其實就是一種暴力,只不過巧妙的是每乙個環恰好統計了一次。三元環計數推薦一篇部落格,科技 三元環計數,很詳細,很清楚。每乙個三元環之所以被算了一次,是因為乙個三元環在新圖上必定只有乙個點的出度為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...