十二省聯考 2019 皮配

2022-05-02 03:54:08 字數 1188 閱讀 8091

你有 $n$ 個集合,每個集合裡有一些非負整數。

有 $4$ 個桶,現在要把每個非負整數放入其中 $1$ 個桶。

限制條件:

1. 同一集合的所有數要麼都放入第 $1,2$ 個桶,要麼都放入第 $3,4$ 個桶。

2. 有 $k$ 個數有特殊要求:不能放入前 $2$ 個桶或不能放入後 $2$ 個桶。

3. 設 $cnt_i$ 為第 $i$ 個桶放的數的總和,要求 $cnt_1+cnt_2\le c_0$,$cnt_3+cnt_4\le c_1$,$cnt_1+cnt_3\le d_0$,$cnt_2+cnt_4\le d_1$。

求滿足限制條件的放置方案數膜 $998244353$。

有 $t\le 5$ 組資料。

$c\le n\le 1000$,$k\le 30$,$m=\max\\le 2500$,$ 1\le s_i\le \min\$。

沒錯這道思維題只考了你 01 揹包

考慮暴力,不難發現由於每所學校只能在藍、紅陣營中選乙個,再在鴨、r 派系中選乙個,所以我們只需要記選擇藍派系的人數 和選擇鴨派系的人數,就能對應一種各派系的人數情況了。總人數減去藍派系的人數就是紅派系的人數,總人數減去鴨派系的人數就是 r 派系的人數,可以不用記。

寫成 $dp$ 就是 $dp(i,x,y)$ 表示前 $i$ 所學校中,藍陣營得到了 $x$ 人,鴨派系得到了 $y$ 人。

把所有學校按城市排序,由於同城學校必須選擇相同陣營,我們對每座城市先列舉其選擇的陣營,再對該城市的學校做 $dp$。

轉移時要注意一下 $x$ 和 $y$ 的上界,可以優化常數(不加可能會被卡時間)。

這就是 $o(n\times m^2)$ 的 $50$ 分 $dp$。

然後我們發現,一所學校選的陣營和派系並沒有關係,只要記錄陣營和派系各自的人數之和就行了。

於是 $dp$ 可以寫成:$dp_1(i,j)$ 表示前 $i$ 所學校中,藍陣營得到了 $x$ 人;$dp_2(i,j)$ 表示前 $i$ 所學校中,鴨派系得到了 $y$ 人。

兩個 $dp$ 的每種人數狀態相乘,在對其求和,就是方案數。

將有限制的和無限制的分開算。

對於陣營,我們把帶有限制的學校的城市與其它城市分開算。

對於派系,我們把有限制的學校與其它學校分開算。

有限制的這部分要維護二維資訊 $dp$,

十二省聯考2019 皮配

十二省聯考2019 皮配 巧妙運用 獨立 的性質,對於 不獨立 的進行暴力處理,再合併 1.dp i j k 前i個城市,藍有j,鴨有k個方案數 2.無限制時,城市的陣營和學校的派系獨立,直接dp出城市選擇方案,派系選擇方案,直接乘起來。顯然唯一分配且一一對應 有限制,只有30個 考慮對於有限制的城...

十二省聯考2019 皮配

題目 十二省聯考2019 皮配 設s等於各學校人數之和。首先,有乙個很簡單的 o nm 2 的 dp 記錄當前考慮到哪所學校,以及藍陣營人數a,鴨派系人數b,最後,只要滿足 s c1 a c0 且 s d1 b d0 這個方案就是合法的。寫上這個就有50分了。注意到還有20分滿足 k 0 即沒有限制...

十二省聯考 2019 皮配

這是一道揹包計數問題,所以可以從生成函式的角度來理解。每個選手可選擇的是陣營 0 1 以及派系 0 1 如果乙個城市選擇了第 i 陣營第 j 派系,那麼相當於分別讓陣營 i 和派系 j 的代價 s i 設乙個沒有任何限制的學校的生成函式為 1 x y x y 其中 x 表示陣營 1 y 表示派系 1...