P5058 ZJOI2004 嗅探器 割點

2022-03-18 00:07:27 字數 1134 閱讀 4763

一開始看到它的時候,想都沒想直接cv了割點的模板。結果是這樣的:

再次讀題,發現是只用找u->v路徑上的最小割點,改一下就a了

ac**:

#includeusing

namespace

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點的...