【題意】
給定乙個有向圖,問圖中互相可達(強連通)的點有多少對
【ac】
強連通縮點,縮點後是乙個dag,所以互相可達的點只在強連通塊裡。
#include#include#include
#include
#include
using
namespace
std;
intn,m;
const
int maxn=1e4+2
;const
int maxm=1e5+2
;struct
edgee[maxm];
inthead[maxn];
inttot;
ints[maxn],top;
intdfn[maxn],low[maxn],id;
intbelong[maxn],num;
bool
vis[maxn];
intcircle[maxn];
void
init()
void add(int u,int
v)void tarjan(int
u)
else
if(vis[v]) low[u]=min(low[u],dfn[v]);
}if(dfn[u]==low[u])
}}int
main()
for(int i=1;i<=n;i++)
for(int i=1;i<=n;i++)
int ans=0
;
for(int i=1;i<=num;i++)
printf(
"%d\n
",ans);
}return0;
}
ccf 高速公路
問題描述 某國有n個城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由於經費限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。現在,大臣們幫國王擬了乙個修高速公路的計畫。看了計畫後,國王發現,有些城市之間可以通過高速公路直接 不經過其他城市 或間接 經過乙個或多個其...
CCF高速公路
新學了tarjan演算法,今天中午之前還沒聽過,用dfs硬寫加了點優化得了70,對路的演算法還是給力,直接滿分。回頭整理一篇關於強連通分量的部落格,另外這次往後就慢慢全用c 了。include include include include define maxsize 10005 using na...
ccf 高速公路 100
試題編號 201509 4 試題名稱 高速公路 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 某國有n個城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由於經費限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。現在,大臣們幫國王擬了乙個修高速公...