省選聯考 2020 A 卷 組合數問題

2022-02-03 00:48:39 字數 2888 閱讀 4192

前言:

這是我退役賽省選中唯一一道答得令自己滿意的題目。

也就是$skyh:$難道你沒$ac$

的那道題。

這道題我想了大概二十多分鐘。覺得不是很簡單。

然而考後出來才發現,大神們都是用數學推導$ac$的這道題。

而我,眾所周知,退役在即的我菜的不行,自然不會數學推導。

所以說如果你什麼也不會,你怎麼做這道題呢?

於是這裡有乙個菜菜的組合含義理解方法。(幾乎)沒有任何數學推導。

(可能和luogu的某些題解撞了?不知道我沒看)

雖然時間複雜度顯然不優是$o(m^2log)$的但是應該比較好懂……(考場上犯傻了其實可以簡單優化成$o(m^2)$)

於是打算做乙個大膽的嘗試:能不能給學弟(妹)們講懂。

沒關係看不懂就證明我果然還是太菜了qaq

$description:$

求$\sum\limits_^ \binom x^k f(k)$其中$f(x)=\sum\limits_^ a_ix^i$

15%:$n\le 10^3$

+25%:$m=0$

+20%:$x=1$

100%:$m\le 10^3,others \le 10^9$

(只給出了我用到的部分分)

$n \le 10^3:$

你可以用多項式多點求值求出所有$f$的值然後……編不下去了。

(真慶幸沒單獨提出來乙個$n \le 5 \times 10^4$的部分分)

$m=0:$

也就是說$f(x)$是乙個與$x$無關的常數。不妨設其為$1$最後乘上常數倍。

式子的形式是:$\sum\limits_^ x^k \binom$

考慮實際含義:我們要對於所有$k$求出,從$n$個物品裡選出$k$個,每種選法的貢獻是$x^k$

於是我們可以對於這$n$個物品考慮:每個物品被選中就貢獻$x$,沒被選中貢獻$1$,一種選法的貢獻就是所有物品乘起來。

你要求出的是所有選法的貢獻和,而物品之間是獨立的,每種物品都會作為$1,x$出現各一次。

所以其實就是$(1+x)^n$。把這個東西展開,就是乘法分配律,就得到的是所有方案的和。

(然而寫出啦我才知道,這不就是個二項式定理嗎我考場上為啥要這麼弱智啊)

$x=1:$

也就是說$x^k$那一項消失了。剩下的形式是$\sum\limits_^ f(k) \binom$

你自然拿多項式沒什麼辦法,所以把它展開:

$\sum\limits_^ a_i \sum\limits_^ k^i \binom$

外邊的這個$i$大力列舉。考慮內部的組合含義:

我要從$n$個物品裡選出$k$個,然後貢獻是$k^i$($i$是列舉的所以已知,可以視為常數)

這個$k^i$好像有點難辦,怎麼去理解?就是從$k$個物品裡可重複地選擇$i$次啊。

所以我們就是要從$n$個數里選$k$個,再在這$k$個裡可重複欽定$i$次。

卡住了。於是我們改變列舉的東西:我們嘗試去列舉一下這$k$個物品裡有多少個物品被至少欽定過一次,設為$j$。

(因為你是可重複選擇$i$次,所以列舉上屆就是$i$,$i \le m$複雜度沒問題)

那麼我們從$n$個物品裡選擇$j$個作為被欽定過地元素:這是$\binom$

那麼你要把$i$次選擇分配給這$j$個元素,且每個元素非空。這顯然是個第二類斯特林數。

(啊學弟們是不是不知道什麼是斯特林數啊,那我失敗了啊,我好菜啊)

然而其實只是乙個$o(n^2)$遞推的東西:$\begin n \\ k \end$表示將$n$個帶編號的球扔進$k$個不帶標號桶裡且每個桶都有球的方案數。

然而在本道題當中,根據題目含義,桶是帶標號的,所以還要乘上乙個階乘。這裡的階乘和上面的組合數形成下降冪$n^}$

(這個東西學弟們可以當成乙個dp來做)

同時你還要考慮原來$n$個裡選$k$個的過程:我們知道我們所欽定的$j$個元素一定被選了,沒欽定的$n-j$個元素選不選都可以,總方案數是$2^$

所以總的方案數是$\sum\limits_^ a_i \sum\limits_^ n^} 2^ \begin i \\ j \end$

兩層迴圈暴力列舉完事。組合數的話因為$n$是確定的所以直接搞乙個下降冪就好了。

無特殊限制:

$\sum\limits_^ \binom x^k f(k)$

和上乙個部分分一樣先拆$f$得到$\sum\limits_^ a_i \sum\limits_^ k^i \binom x^k $

其實除了$2^$那部分以外,其餘都和上面一樣可以得到$n^} \begin i \\ j \end$

然後因為$x$不再是$1$所以我們不是要計數方案,而是統計方案的貢獻和。其中的貢獻和第一檔部分分一樣,選中是$x$沒選中是$1$

然後就比較簡單了:你欽定的$j$個都一定被選中了是$x^j$,剩下的選不選都行,考慮所有情況就是$(x+1)^$

最後的答案是$\sum\limits_^ a_i \sum\limits_^ \begin i \\ j \end x^j (x+1)^ n^}$

我個弱智只預處理了斯特林數和下降冪,剩下的快速冪,$o(m^2log)$

然而快速冪只用到了$x^,(x+1)^$。$a \le m$。所以說也可以簡單預處理。複雜度下降到$o(m^2)$

我相信學弟們一定沒聽懂。我太菜了

我就是來騙閱讀量的

其實這道題這麼順下來部分分給的真棒啊……我喜歡。雖然並無卵用

1 #include2

using

namespace

std;

3const

int $=1003;4

intst[$][$],mod,n,m,x,a[$],dpw[$],ans;

5int qp(int b,int t,int a=1)

6int

main()

令人快活的13行ac**

省選聯考2020A卷 組合數問題 題解

首先常規地把 f k 拆開 sum nf k x k binom sum ma i sum nk ix k binom 然後證明乙個組合恒等式 sum nk ix k binom sum in x j 1 x begini j end square 考慮它的組合意義 有 n 個不同的盒子,每個盒子可...

聯合省選 2020A 組合數問題 題解

這題算是我斯特林數的入門題,順便安利大佬的部落格,我是從這篇部落格中學的斯特林數。begin sum n f k times x k times dbinom n k sum n m right x k dbinom nk texttt sum n m ii j endk right x k dbi...

省選聯考 2020 A 卷 魔法商店

點此看題 由於 這東西 已經鴿掉了,那麼我就寫一篇只記錄做法的部落格吧。首先講一下保序回歸的一般做法,我們考慮使用整體二分求解 f f 指調整後的 設現在 f 的範圍是 l,r 我們要檢測 f i leq mid 是否為真,稱額外限制 f i in a,b 的問題為 問題。我們可以考慮原問題的 問題...