這題求最小的單向環。
可因為每個節點初度為1,所以所有的強聯通分量都只能是單向環。
所以就是有向圖強連通分量的模板題。
#include#include#include
#include
#include
#include
using
namespace
std;
const
int maxn = 200000 + 10
;const
int inf = 0x3f3f3f3f
;vector
g[maxn];
intpre[maxn], lowlink[maxn], sccno[maxn], dfs_clock, scc_cnt;
stack
s;intn,ans;
void dfs(int
u)
else
if (!sccno[v])
}if (lowlink[u] ==pre[u])
if(cnt>1) ans =min(ans, cnt);
}}void find_scc(int
n) void
init()
intmain()
find_scc(n);
printf(
"%d\n
",ans);
}return0;
}
P2661 資訊傳遞
題目描述 有n個同學 編號為1到n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人可以從若干人那裡獲取資...
P2661 資訊傳遞
題目描述 有n個同學 編號為1到n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人可以從若干人那裡獲取資...
P2661 資訊傳遞
並查集求解有向圖最小環 首先有個特殊要求的就是對於圖的邊是沒有長度的。然後我們採取乙個簡化操作,在找到這個環之間,由於只需要求環的長度,所以對於環的最後一條邊,不加入之前先判斷指向的點能不能最後指向原點。includeusing namespace std int n int ans 200050 ...