省選模擬40

2022-03-26 19:32:39 字數 980 閱讀 5658

考慮如何使用$m<=n+5$這個條件搞事情。

發現如果我們將度數很少的點縮掉,那麼剩餘的點的個數會很少,甚至可以到直接搜尋的程度。

發現只要將度數$<=2$的點縮掉就可以了。

對於度數等於1的點,可以直接消掉,給最終的答案乘上$k-1$即可。

考慮給每條邊設兩個權值,即兩邊的點顏色相同時的權值和顏色不同的權值。

度數等於2的點,那麼需要將兩條邊合併成一條,考慮新加入這條邊的權值,分為兩邊相同和不同討論。

最終在縮完點的圖上只要搜尋出答案就可以了。

首先可以把題意轉化成n個物品m天取完的方案數並且在某一天取走一件物品的貢獻是確定的,所以所以列舉每個時間取走多少件就可以確定貢獻。

所以考慮這個東西的組合意義。

假如有很多球,每個球上標有$1-m$的數字,其中標有m的球的種類數是u+v,其餘數字球的種類數是u,那麼求滿足以下條件序列的個數:

1.長度為n+m-1。

2.每個數字出現至少1次。

3.數字出現的順序單調遞增(m除外)。

那麼可以發現,滿足條件的序列個數就是原來問題的答案$*u^$。

發現最後乙個條件很煩人,那麼考慮去掉它。可以發現,除了第$m$種球,其他每種球都是等價的,所以假如去掉了最後乙個條件,那麼答案就會變成原來的$(m-1)!$倍。

所以只要求出來滿足前兩個條件的序列個數。

這個東西可以簡單的容斥得到,也就是列舉最多出現了多少種顏色,容斥得到出現m種顏色的方案數。

考慮部分分的做法,假如將每個點相連的兩種點之間連一條邊,那麼這張圖顯然是一張二分圖。

發現最大匹配必然每條邊的兩端至少選乙個點,所以這個問題轉化成了最小點覆蓋。最小點覆蓋=最大匹配,所以直接跑就行了。

將這個東西擴充套件到正解。

將每個時間段拆成兩個點,之間連一條流量為1的邊,對於每個任務$x$,假如$t=0$,那麼s->x,流量為1,x->能夠完成任務的時間段,流量為inf。否則x->t,能夠完成的時間段->x,流量相同。

之後跑最小割就可以得到答案。

省選模擬40 題解

考慮對每條邊 a,b 附加兩種邊權 x,y 對於一種染色方案,當 col a col b 邊權為 x 否則邊權為 y 取 x 1,y 0 一種染色方案的貢獻是所有邊權的乘積,那麼答案就是對於每種染色方案的貢獻的和。發現這個玩意可以合併。當 deg p 1 可以直接刪掉點 p 並給全域性答案乘上 p ...

考試 省選40

t1 很思維的題。我們把所有的度數小於3的點全部都縮掉然後分情況給邊和去掉的邊的答案乘上對應的貢獻即可。用 set 和 bfs 來維護就可以了。時間複雜度 o nlogn 比較麻煩。學到一招 mutable 型 易變型變數。如果 set 中的元素的大小符定義和這個元素中含有的某乙個 mutable ...

省選模擬 19 09 11

ps.博主趁資訊課摸魚考的暴零模擬 看門人憑感覺就知道是長鏈剖分,將路徑查分一下,dis u di sv 2 dis lc adis u dis v 2 dis disu disv 2 disl ca 維護fu,if fu,i 表示u的子樹,深度為 i 的點的 dis disdi s最大值 考慮如何...