烏魯木齊網賽I island tarjan

2021-08-08 02:03:39 字數 1397 閱讀 3745

題目大意:加最少的邊使有向圖變成強聯通圖,讀懂題意就好辦,網賽時通過率很高。

照以前hdu2767、3836的**改的。(幾乎沒怎麼變…)

#include 

#include

#include

#include

#include

using

namespace

std;

const

int maxn = 20000+10;

vector

grap[maxn]; //稀疏圖,用鄰接表表示圖

stack

s;int low[maxn]; //low[u] 為u或u的子樹能夠追溯到的最早的棧中節點的次序編號

int num[maxn]; //num[u] 為u搜尋的次序編號(時間戳)

int visited[maxn]; //標記是否已經被搜尋過

int instack[maxn]; //標記是否在棧中

int index1;

int cnt_scc; //記錄總共將圖縮成多少個點

int belong[maxn]; //belong[i] = j 表示原圖的點i縮點後為點j

int min(int a, int b)

int max(int a, int b)

void init(int n)

while(!s.empty())

memset(instack,0,sizeof(instack));

memset(visited,0,sizeof(visited));

memset(low,-1,sizeof(low));

memset(num,-1,sizeof(num));

memset(belong,-1,sizeof(belong));

index1 = 0;

cnt_scc = 0;

}//找出連通分支,並縮點

void tarjan(int v)

else

if(instack[w]) //(v,w)為後向邊

}int u;

if(low[v] == num[v]) //滿足強連通分支條件,進行縮點

while(u != v);

}}int main()

for(int i=1; i<=n; i++)

}//求縮點後,各個頂點的出度和入度

for(int i=1; i<=n; i++)}}

a = b = 0;

for(int i=1; i<=cnt_scc; i++)

if(cnt_scc == 1) //如果圖已經為強連通圖

cout

<<"0"

cout

0;}

令人完全崩潰的網賽。。。

今年開始第一次正式作acm icpc的比賽,之前對於網賽的情況了解不多。乙個學長的簽名中這樣寫道 網賽比的就是網速。以前看著這話有點模糊,不過經歷了今天的杭電的網賽之後,網速確實能夠決定網賽。前幾站中,網速最好的就是北京的網賽了,哈爾濱的雖然網速慢了點,不過還是比較穩定,就是判題的時候,等的久點 但...

Huawei網賽學習筆記(一)

劃重點 運營商的混搭架構 hadoop基礎技術 傳統的資料處理系統面臨的問題 大資料的資料特徵 資料量大 格式複雜 響應速度要求高 資料價值密度低 hdfs是基於谷歌的 開發,具備其他分布式檔案系統的相同特徵,也具有以下特徵,高容錯 高吞吐量 大檔案儲存。yarn是hadoop中的資源管理系統,他是...

2019網路賽總結

今年的網路賽,包括從一開始的ccpc到昨天結束了的icpc,總的來說發揮是很差的,補了一暑假的圖論知識基本上是一次都沒有用到,非常的難受,說說我們不足的地方吧,首先,從一開始我就感覺出來了,我們隊伍的整體的氛圍是很差的,這個氛圍是指我們隊伍內討論的情況,就像是各打個的,乙個題目下來了基本上沒有什麼討...