一開始看到它的時候,想都沒想直接cv了割點的模板。結果是這樣的:
再次讀題,發現是只用找u->v路徑上的最小割點,改一下就a了
ac**:
#includeusingnamespace
std;
const
int maxn=1e6+7
;struct
nodeedge[
2*maxn];
inthead[maxn],cnt,tot;
bool
check[maxn];
intcut[maxn];
void add(int x,int
y)int
n,m,x,y;
intdfn[maxn],low[maxn],sta[maxn],time;
inta,b;
void dfs(int
x)
else low[x]=min(low[x],dfn[v]); //
這個非常重要,一定要是和他能走到得點的時間做比較,而不能和它們的low比較,否則可能會搜不到割點
}
//if(x==fa&&son>=2) check[fa]=true;
//如果節點是根節點並且子樹大於2,是割點
}int
main()
scanf(
"%d%d
",&a,&b);
dfs(a);
for(int i=1;i<=n;i++)
}printf(
"no solution\n");
return0;
}
題解 P5058 ZJOI2004 嗅探器
題目鏈結 題目大意 給定乙個無向圖,求乙個編號最小的點 p 使得刪掉 p 後 s 和 t 不連通 tarjan 演算法 分析 首先我們要明確 點 p 一定是割點,因為只有你刪掉乙個點後圖不連通才有可能使得 s 和 t 不連通,然後我們可以用 tarjan 來做這個事情 常規求割點是什麼,時間戳 df...
洛谷P5058 ZJOI2004 嗅探器
某軍搞資訊對抗實戰演習,紅軍成功地侵入了藍軍的內部網路,藍軍共有兩個資訊中心,紅軍計畫在某台中間伺服器上安裝乙個嗅探器,從而能夠偵聽到兩個資訊中心互相交換的所有資訊,但是藍軍的網路相當的龐大,資料報從乙個資訊中心傳到另乙個資訊中心可以不止有一條通路。現在需要你盡快地解決這個問題,應該把嗅探器安裝在哪...
ZJOI2004 沼澤鱷魚
給定乙個無向圖,以及起點s和終點t。每單位時間可以從乙個點走向聯通的另乙個點,問從起點s出發,經過k單位時間到達終點t的方案總數。最多50個點,k小於等於10 9。另 某一週期 週期時間為2,3或4 內一些點不能走到。到達某一點的方案總數,需要想到由加法原理進行遞推。記f u,k 為k秒後到達u點的...