第一反應是用flody把初始距離為inf,然後右邊可達為1
到最後判斷每個頂點與其他頂點是不是都可達,如果可達number++;
但是超時了60分 = =
後來發現直接裸個d
fs把圖遍歷一下就直接過了 真尷尬= =
可惡!60:#include#includeusing namespace std;
const int inf=999999999;
int arc1[1002][1002];
int arc2[1002][1002];
int main()
for(i=0;i>x>>y;
arc1[x][y]=1;
arc2[y][x]=1;
}for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(i=1; i<=n; i++)
dfs1(i);
dfs2(i);
for(j=1; j<=n; j++)
if(visit1[j]==0&&visit2[j]==0)
if(flag==1) number++;
}cout<0.0
通訊網路 ccf
試題編號 201709 4 試題名稱 通訊網路 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 某國的軍隊由n個部門組成,為了提高安全性,部門之間建立了m條通路,每條通路只能單向傳遞資訊,即一條從部門a到部門b的通路只能由a向b傳遞資訊。資訊可以通過中轉的方式進行傳遞,即如果a能...
CCF 2017 09 04 通訊網路
剛開始想的是dfs進行遍歷,然後統計前後這個節點做能到達的節點個數,但卻發現要是有環的話,就沒法做了,想水水看能得幾分,但卻在處理上有一些問題。蒟蒻。看了題解,原來往dfs裡面傳進去兩個當前節點就可以的,然後用乙個節點負責進行遍歷看子節點,另乙個負責統計它能夠到達的節點。然後進行兩遍for迴圈就能夠...
CCF 201709 4 通訊網路
問題描述 某國的軍隊由n個部門組成,為了提高安全性,部門之間建立了m條通路,每條通路只能單向傳遞資訊,即一條從部門a到部門b的通路只能由a向b傳遞資訊。資訊可以通過中轉的方式進行傳遞,即如果a能將資訊傳遞到b,b又能將資訊傳遞到c,則a能將資訊傳遞到c。一條資訊可能通過多次中轉最終到達目的地。由於保...