无向图三元环计数
無向圖三元環計數
這個做法的思想還是很巧妙的,首先我們考慮枚舉,暴力的方法就是枚舉三個點O(n3)O(n^3)O(n3),枚舉一個點然后枚舉出邊,然后再枚舉出點的出邊,然后考慮這個做法的復雜度。對于每條邊分析,它會對復雜度的貢獻就是指向的點的度數,所以總復雜度就是∑i=1mdegpi\sum_{i=1}^mdeg_{p_i}∑i=1m?degpi??,但是如果我們能夠把無向圖變為有向圖就可以優化復雜度,如果這個有向圖沒有環,那么所有無向圖中的環對應了有向圖中的<u,v><u,w><v,w>,然后考慮構造一種方法是的復雜度盡量優秀,那么考慮讓度數小的點向度數大的點連邊,這樣構造出來的圖有非常優美的性質,滿足所有點的出度都是O(m)O(\sqrt{m})O(m?)
具體證明:
如果這個點在原圖上度數小于m\sqrt{m}m?那么新圖上出度一定小于m\sqrt{m}m?。
如果這個點在原圖上度數大于m\sqrt{m}m?那么新圖上它只會指向度數大于等于m\sqrt{m}m?的點,因為一個圖總度數是O(m)O(m)O(m),所以度數大于等于m\sqrt{m}m?的點只有O(m)O(\sqrt{m})O(m?)個,所以這些點的出度也是O(m)O(\sqrt{m})O(m?)的。
總結
- 上一篇: 方案计数(带修计数题/线段树)
- 下一篇: 镐京的意思是什么 镐京的含义