(
//鄰接表存圖
#include
#include
#include
#define maxn 200010
using
namespace
std;
int dfn[maxn],low[maxn];
int clock,top; //當前元素是被訪問的序號,模擬棧的首部
bool instack[maxn];
intstack[maxn],head[maxn];
int ans,tot;
struct node
edge[maxn];
void addedge(int u,int v)
void tarjan(int u)
//如果已經被訪問過 沒有被刪除 說明這個點是某個強連通分量的一點 當前"根"的low值和當前點的dfn值比較並更新
else
if(instack[v]&&low[u]>dfn[v])
low[u]=dfn[v];
}if(low[u]==dfn[u])
while(k!=u);
if (temp>1)
ans+=(temp*(temp-1))/2;
}}int main()
for(int i=1;i<=n;++i)
printf("%d",ans);
return
0;}
CCF 201509 4 高速公路
問題描述 試題編號 201509 4 試題名稱 高速公路 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 某國有n個城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由於經費限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。現在,大臣們幫國王擬了乙...
CCF 201509 4 高速公路
問題描述 某國有n個城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由於經費限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。現在,大臣們幫國王擬了乙個修高速公路的計畫。看了計畫後,國王發現,有些城市之間可以通過高速公路直接 不經過其他城市 或間接 經過乙個或多個其...
CCF 201509 4 高速公路(強連通分量)
求有多少個結點對能夠互相到達 思路一 50分 對每個結點dfs,求傳遞閉包,時間為o v e 簡單,但是超時 思路二 100分 計算圖的強連通分量 scc 各個分量裡面的點都是可以相互到達的 scc演算法 o v e 強連通分量 strongly connected components dfs求拓...