鏈結找不到了
發現如果對於乙個聯通塊內的偶數個點,一定可以兩兩配對且不相交
如果相交,則調換組合順序一定可以不相交
而如果我們把所有這些路徑拿出來,邊數一定小於等於聯通塊大小-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 個。網路流妥...