天天看點

洛谷 P4068 [SDOI2016]數字配對

兩種建圖方法:

1、每種數拆點 ai,a′i a i , a i ′ ,然後 O(n2) O ( n 2 ) 暴力求出可以比對的 ai,aj a i , a j ,連邊 (ai,a′j,INF,c[i]∗c[j]) ( a i , a j ′ , I N F , c [ i ] ∗ c [ j ] ) 和 (a′i,aj,INF,c[i]∗c[j]) ( a i ′ , a j , I N F , c [ i ] ∗ c [ j ] ) ,然後連每個 (S,ai,b[i],0) ( S , a i , b [ i ] , 0 ) 和 (a′i,T,b[i],0) ( a i ′ , T , b [ i ] , 0 ) 。建出的圖是對稱的,是以最終答案除以2即可。

2、觀察配對的條件。設 ai>aj a i > a j , ai a i 與 aj a j 配對等價于 ai=aj∗p a i = a j ∗ p , p p 為質數。是以我們将aiai和 aj a j 分解質因子後就可發現,這一條件等價于質因子質數和 cnti=cntj+1 c n t i = c n t j + 1 。是以我們把 ai a i 按 cnti c n t i 的奇偶性分開,這就是一個二分圖了,連邊類似方法1。

不管哪種方法建圖,我們最後都要跑最大費用流。但是存在限制:費用不小于0。這裡需要用到貪心的思想:每次沿最長路增廣,如果目前最長路即使隻流1的流量都會使費用小于0,停止增廣。

總結:

1、通過拆點,建有對稱性的圖,最後答案除以2的方法可以滿足一些流量對稱性的要求。(本題要求邊 (S,ai) ( S , a i ) 與 (a′i,T) ( a i ′ , T ) 流量相等)

2、用貪心思想滿足費用流的費用限制。