天天看點

【Codeforces】512C Fox and Dinner

【解析】歐拉篩法,奇偶分析。建二分圖,網絡流

[Analysis]

所謂的連通塊就是指滿流了,因為我直接使用剩餘流量求網絡流。

至于怎樣推斷滿流,我想到下面幾種:

①對于初始的網絡。若圖的流向是一樣的。那麼就直接推斷對于一條邊k的正向邊k>>1<<1是否滿流。

②對于一般的,能夠存流量限制。

③或者對每條邊再存個tag。若tag=1,則表示初始時這條邊容量限制非0,否則是0。

[Q&A]

問題1:為什麼這樣搜尋能夠出解而不錯誤?

回答1:這不是非常明顯的嘛,因為滿流了,是以除原點和彙點外的每一個節點連接配接且僅連接配接兩個節點。

這樣從一個節點過來。那麼必定僅僅能從還有一個節點出去。

最後必定會有一個節點連接配接到第一個節點。這是就停止了。假如沒有。那麼一直找到了第n個節點就找不到了。沖突。

特殊的,對于每一個連通集合的第一個節點,選擇了随意一個相鄰的節點,這也是沒問題的。

[Sum]

①對于素數的問題,要想到奇偶分析。

②k!=-1。等價于~k,這裡能夠化簡。事實上scanf("%d",&a)這個函數假設讀不到不論什麼東西,傳回的值也是-1。

之是以能這樣由于-1的二進制為最大即2^k-1,取反後為0。而其它取反都非0。

③推斷滿流的三種辦法。

④回想了網絡流算法。

[Code]