20240628總結(圖的連通性)

星河倒注發表於2024-06-29

A - Strictly Positive Matrix

CF402E Strictly Positive Matrix
題解:若a[i][j]為1,那麼i向j連邊,若只有一個scc有解否則無解

手模一下矩陣的運算規則就不難發現

B - Reachability from the Capital

CF999E Reachability from the Capital
題解:先縮點。手玩發現規律,對於一個不能被s 所到達的連通塊,其所要新加邊的數量為其中入度為 0 點的數量

C - Two Houses

CF1498E Two Houses
題解:有結論:出度大的點一定可達出度小的點

proof:
反證法,若出度大的點i不可達出度小的點j,設i的出度為out[i],那麼i可達這out[i]個點。

題中的圖為完全圖,這out[i]個點一定與j點有連邊,又因為i不可達j,所以連邊一定為j到這out[i]個點,故j的出度不小於out[i],矛盾。

有了這個結論,我們可以將每對這樣的i,j按照abs(k[i]-k[j])排序。因為i肯定可達j,我們只要詢問j是否可達i就可以了。

D - Checkposts

CF427C Checkposts
題解:縮點,對於每個scc找出最小的點權,至於方案數就是每個scc裡最小點權個數的乘積

E - Ice Skating

CF217A Ice Skating
題解:如果x[i]=x[j]或y[i]=y[j],則i,j之間連邊,答案就是scc數量-1

F - Two Sets

CF468B Two Sets
不知道為什麼放了一道和上次一樣的題

首先二分答案,將權值≤mid 的邊叫做活邊(可選可不選),全值 >mid 的邊叫做死邊(不可以選)

考慮分類討論

1.如果一個點連了 2 條同色邊一定無解
證明:選和不選兩種狀態,鴿巢原理得知至少有一個狀態選了兩條邊,無解

2.如果一個點連了 2 條同色死邊一定無解似乎不需要證明

3.如果一個點對於兩種不同顏色都有 2 條邊,那麼一定無解
證明:每一種顏色只能選一條邊不選一條邊,那麼這個點就會被選兩次

(具體可以自行畫圖證明)

那麼我們對於一個點所連的邊就只有三種情況

1.一個同色活邊+死邊,若干不同色活邊死邊
此時這個同色的活邊必選,所以其他邊全都不能要

2.兩個同色活邊,若干不同色活邊死邊
此時只能二選一,跟其他邊也沒關係,也全都不要

3.若干不同色活邊死邊
沒有同色邊意味著可以選這些邊中的至多一個

(具體可以自行畫圖理解)

用 2-SAT 演算法可以實現

但是注意到情況三需要邊兩兩加限制,時間複雜度為\(O(m^2)\),難以透過

這個時候正常人會掏出字首最佳化見圖,但是我不會

但是這樣常數翻了個若干倍

我們將 2-SAT 中的連邊稱作限制

那麼存在定理

4.無限制的邊一定可以不選
證明:

假設不選它之後會衝突

那麼說明有一個同顏色共頂點的邊也沒選

可是如果存在同顏色共頂點的邊,那麼要麼是無解要麼是情況一或二,存在限制

與條件矛盾

所以我們把沒有限制的邊也全不要,剩下的邊的數量很少

暴力新增限制可做

相關文章