組合計數題單 括號序列

2022-05-15 13:52:50 字數 1666 閱讀 7923

目錄只有括號不會,不會就是不會,見到多少次都不會......

求有多少個長度為 \(n\) 的括號序列滿足其所有子串行中最長合法括號子串行的長度恰好為 \(2k\),多組資料。

資料範圍:\(n,t\le 2\times 10^5,k\le n\).

考慮將(設為 \(1\),將)設為 \(-1\),然後求字首和得到 \(s_i\),那麼,乙個序列的最長合法括號子串行的長度就是 \(n-s_n-2|\min\|\).

至於這個結論是怎麼證的,我們考慮從整個序列長度減去沒用到的右括號與左括號,就是最長的,對於沒有用到的右括號,實際上就是 \(|\min\|\),放到二維座標系上是這樣

每次,只要這個函式超過了之前的最小值,那麼它就浪費了乙個右括號,所以總共浪費的右括號就是 \(|\min\|\).

至於沒有用到的左括號,其實就是 \(s_n+|\min\|\)(就是最後剩下的從最低點到最後的那一節),所以總共就是 \(n-|\min\|-(s_n+|\min\|)=n-s_n-2|\min\|\).

所以我們就是要找乙個長度為 \(n\) 的括號序列滿足 \(n-s_n-2|\min\|=2k\),也就是必須滿足 \(s_n=n-2k-2|\min\|\).

暴力一點,列舉 \(\min\=t,|\min\|=-t\)(因為至少有 \(s_n=0\),所以一定滿足 \(\min\\le 0\))則 \(s_n=n-2k+2t\),至於怎麼求 \(\min\=t\),考慮使用簡單的容斥,將 \(\min\\ge t\) 的方案減去 \(\min\\ge t-1\) 的方案,而這個東西,實際上就是

這條折線始終在 \(y=t\) 的上方(可觸碰),最後到達 \(s_n\),即從 \((0,0)\) 走到 \((n,s_n)\) 而不經過 \(y=t-1\),這個是什麼?這是翻摺引理,方案數就是沒有限制的方案數減去按直線翻摺後終點的方案數,即

\[}-}=-

\]對於 \(\min\\ge t-1\) 的方案數,就是

\[}-}=-

\]最後的總方案數就是

\[--+=-

\]這個東西似乎和 \(t\) 無關,但是我們得考慮這個 \(t\) 有好多取值,由於 \(t\) 滿足不等式 \(s_n\ge \min\\leftrightarrow n-2k+2t\ge t\rightarrow t\ge 2k-n\),所以最後的答案就是

\[(2k-n)\left(-\right)

\]這個東西,話說這到底是怎麼想到的......

重要定理:

對於乙個括號子串行,考慮將(設為 \(1\),將)設為 \(-1\),然後求字首和得到 \(s_i\),那麼,這個序列的最長合法括號子串行的長度就是 \(n-s_n-2|\min\|\).

翻摺定理,從 \((0,0)\) 走到 \((x,y)\) 而不經過 \(y=k\) 的方案數,就是沒有限制的方案數減去按直線翻摺後終點的方案數。

對於沒有用到的右括號,實際上就是 \(\max\\),也就是 \(|\min\|\),這個怎麼理解,假如說我們的 \(s_i\) 放到二維座標系上是這樣

組合計數 經典序列問題

1.la 5092 permutation counting 題意 給定 1 sim n 的排列 滿足 a i i 的下標 i 的個數稱為此排列的 e 值,例如 的 e 值為 1 的 e 值為 2 給定整數 n 和 k 1 leq n leq 1000,0 leq k leq n 求 e 值恰好為 ...

組合計數(初步)

組合數學主要是研究某組離散物件滿足一定條件的安排的存在性 構造及計數等問題。組合計數理論是組合數學中乙個最基本的研究方向,主要研究滿足一定條件的安排方式的數目及其計數問題。本課程主要介紹組合數學中常見的和重要的一些計數原理 計數方法和計數公式,包括一般的排列 組合的計算以及生成函式 容斥原理 反演原...

組合計數小啟發

在dp的領域中還有的很大一部分就是組合計數。以前做了fhq在集訓隊作業中的 連邊 這道題,大概就是要你給乙個圖連邊是的若干個點度數為奇數。比較容易發現是一道dp題,但是怎樣保證狀態不重不漏?常用的方法就是增維,比如按照排序大小擴充套件啦,按照字典序擴充套件啦從而使得狀態不重,但是還有兩種方法可以使得...