201509 4 高速公路

2021-07-23 10:56:19 字數 763 閱讀 3542

(

//鄰接表存圖 

#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求拓...