某道 EGF 題目

2022-03-28 19:16:09 字數 2016 閱讀 5109

有 \((n+m+k)\) 盞燈,各有不同的編號與開關。其中有 \(n\) 盞亮著的, \(m\) 盞暗燈, \(k\) 棧壞的燈。亮燈按下開關將變成暗燈,暗燈按下開關將變成亮燈,壞燈無論如何按開關都是暗燈。求操作嚴格 \(t\) 次後,所有燈都是暗燈的方案數。結果對 \(10^9+7\) 取模。

\(n,m\leq 5\times 10^3,t,k\leq 10^\)

對於數列 \(\\) 設 \(egf(a_n)=a^e(x)\) 表示其指數型生成函式

設 \(ans[t]\) 表示操作嚴格 \(t\) 次的方案數,不難寫出方程:

考慮 \(t\) 個位置中,先選擇 \(p\) 個位置給所有亮燈,再選 \(q\) 個位置給所有暗燈,最後選 \(r\) 個位置給所有壞燈

\(\displaystyle ans[t]=\sum_

\left(

\begint\\

p,q,r

\end

\right)

f_n[p]g_m[q]k^r\)

其中:\(f_n[p]\) 表示操作 \(p\) 次,讓亮著的 \(n\) 盞燈全部變暗的方案數

\(g_m[q]\) 表示操作 \(q\) 次,讓暗著的 \(m\) 盞燈全部仍是暗的方案數

考慮到 \(\displaystyle \left(

\begint\\

p,q,r

\end

\right)=,(t-p-q-r)!=0!=1\)

整理式子得 \(\displaystyle =\sum_\cdot \cdot \)

因此有 \(ans^e=f_n^e\cdot g_m^e\cdot egf(k^r)\)

因為 \(\displaystyle egf(k^r)=\sum_^\infty x^r=\sum_^\infty (kx)^r=e^\)

故接著考慮 \(f_n^e\) 與 \(g_m^e\)

對於 \(f_n^e\) ,我們不難列出轉移式子:考慮第乙個亮的燈按開關次數,顯然必須按奇數次;則剩餘 \((n-1)\) 個開關的方案數,等價於只有 \((n-1)\) 個開關的方案數

即 \(\displaystyle f_n[p]=\sum_^p

\left(

\beginp\\

i\end

\right)f_[p-i][2\nmid i]\)

整理得到 \(\displaystyle =\sum_[j]\over j!}\cdot \)

故兩邊取 egf 得到 \(\displaystyle f_n^e=f_^e\cdot (\over 2})\)

又因為 \(\displaystyle f_1[p]=[2\nmid p]\rightarrow f_1^e=\over 2}\)

因此遞推得到 \(\displaystyle f_n^e=f_1^e\cdot (\over 2})^=(\over 2})^n\)

對於 \(g_m^e\) ,我們同樣考慮第乙個暗燈按開關只能為偶數次,故同樣可列出轉移方程:

\(\displaystyle g_m[q]=\sum_^q\left(

\beginq\\

i\end

\right)g_[q-i][2\mid q]\)

同樣整理可得 \(\displaystyle =\sum_[j]\over j!}\cdot \)

因此 \(\displaystyle g_m^e=g_^e\cdot (\over 2})\)

同樣因為 \(\displaystyle g_1[q]=[2\mid q]\rightarrow g_1^e=\over 2}\)

故同樣的 \(\displaystyle g_m^e=g_1^e\cdot (\over 2})^=(\over 2})^m\)

回到原式,我們現在得到了:

\(\displaystyle ans^e(x)=(\over 2})^n\cdot (\over 2})^m\cdot e^\)

將右邊展開得 \(\displaystyle ans^e(x)=-1)^n\cdot (e^+1)^m\over 2^}\cdot e^\)

GDSOI2015的某道題目

看到這個 3 i 就覺得很奇怪的樣子.為什麼一定要是 3 i 而且不能重複使用.不能重複使用就代表不會產生進製,那麼一定是若干個 3 i 相加減的式子.仔細觀察,我們發現這是乙個最短路徑的問題,每個技能就是一條有向邊,考慮要求能夠用其他技能組合出來當前的技能,也就是說找到一條路徑使得從當前技能的 a...

某比賽的某些題目

這裡我只寫一些認為應該寫報告的題目。像那種5分鐘敲出 的題就不寫了。感謝 xianbin5組織這場比賽,orz 題目1 給一些資料,建議一顆排序二叉樹。然後找到某個節點的祖父節點 父節點的父節點 n 50000 題解 描述很簡單,而且可以很簡單的敲出來。但是注意資料量。所以這裡要用到特殊的東西。乙個...

一道this的題目

請問下面 中的this值指向的是全域性物件還是物件o?function f return c var o new f console.log o.constructor.name object這裡的this指向全域性物件,因為 c call without new。這裡用正常的方式呼叫的函式 c 所...