CF589H 構造 電話節

2021-09-25 13:51:52 字數 1169 閱讀 9948

鏈結找不到了

發現如果對於乙個聯通塊內的偶數個點,一定可以兩兩配對且不相交

如果相交,則調換組合順序一定可以不相交

而如果我們把所有這些路徑拿出來,邊數一定小於等於聯通塊大小-1

所以直接在任意生成樹上做就好

那麼就dfs一下,判斷一下有沒有奇數個點就好了

dfs過程中,乙個點的子樹中的點最多向上傳乙個未匹配的點,剩下的直接構造

code:

#include

using

namespace std;

inline

intread()

while

(isdigit

(ch)

)return res*f;

}const

int n=

50005

,m=50005

;int n,m,k;

int vis[n<<1]

,nxt[n<<1]

,head[n<<1]

,tot=0;

inline

void

add(

int x,

int y)

int spi[n]

,pt[n]

,dep[n]

,fa[n]

,ans;

vector<

int>vec[n]

;inline

void

adde

(int u,

int v)

void

add_path

(int a,

int b,

int lca)

intdfs

(int v,

int f)

}return a;

}int

main()

for(

int i=

1;i<=k;i++

)for

(int i=

1;i<=n;i++)if

(!pt[i]

)dfs

(i,0);

cout<"\n"

;for

(int i=

1;i<=ans;i++

)return0;

}

CF 589F 網路流(or貪心 )

題意 有 盆菜,每個菜的上菜時間是ai bi,要求每盆菜的品嚐時間都相同,求最大的品嚐時間。思路 一開始也想到了網路流,但是沒有想到壓縮區域。我只想到乙個點乙個點地建圖,這個的圖點可能有10 4個啊。肯定不能用網路流 後來請教別人可以乙個區間建圖,流量就是區間長度,這個的話點最多300 個。網路流妥...