首先根據x^y的奇偶將圖分成X,Y集合,然後若對任意 x,y ,不滿足gcd的條件,既連邊,求最大獨立集即可 【最大獨立集=總權值-最小點覆蓋(最大流,最小割)】。
為什麼可以這樣分成二分圖,因為奇數和奇數,或者偶數和偶數異或的時候,二進制第一位一定是0,也就是一定是偶數,題目告訴了我們P一定是偶數,所以它們和P一定至少有一個公約數2,所以它們一定沒有邊(我們是以不滿足條件建邊的)。
最大獨立集的概念就是,選出權值最大的點,使他們兩兩都沒有邊相連。
具體的建圖代碼就是常規的二分圖。
#include
#include
#include
#include
#include
#include
#include