有關直線對稱的套路與一些題目

主要是作者降智嚴重不會這個 $trick$ 故來寫寫。(爲啥沒圖!

本文主要討論的是從 $(0,0)$ 至 $(n,m)$ 每次僅能向上或向右移動一格,問不碰到 $y=x+a_1,y=x+a_2$ 兩條直線的方案數。 

題意

有多少個長度爲 $2n$ 的序列 $a$ 滿足,$\forall i,a_i\in[1,m]$ 且相鄰兩個數差恰好爲 $1$ ,其中 $1$ 與 $2n$ 相鄰。

對於 $k\in[1,n]$ 均求出當 $n=k$ 時的答案。

$1\leq n,m\leq 10^5$ 。

題解

將問題轉化成網格圖上即爲從 $(0,i)$ 走到 $(2n,i)$ ,每次只能往右上 $(+1,+1)$ 或左上 $(+1,-1)$ 移動一次,且不能碰到 $y=0/y=m+1$ 直線。答案即爲 $i\in[1,m]$ 的總和。

如果說限制直線只有一條那麼直接按照類似卡特蘭數的計算方法計算,但是兩條的就需要多考慮一些情況。

設若折線碰到 $y=0$ 記爲 $A$ ,碰到 $y=m+1$ 記爲 $B$ ,那麼普通計算方式可以計算出存在 $A$ 或 $B$ 的情況,例如從 $(0,i)$ 經過 $y=0$ 最後到 $(2n,i)$ 的方案數爲 $\dbinom{2n}{n+i}$ 。

可以發現這是一個容斥問題,我們將 $AAABBA$ 若看成 $ABA$ 這樣進行縮點那麼答案即爲 $\sum_{Q} (-1)^{|Q|} Cnt(Q)$ ,其中 $Q$ 表示一個 $A,B$ 交替的序列。

正確性很好理解,對於一個不合法方案,例如 $ABA$ 可以看成 $A/B/AB/BA/ABA$ ,其中帶權爲 $+1-1-1+1+1-1=0$ ,$AB$ 可以的權看成 $+1-1-1+1=0$ 。

那麼我們只需要計算 $\sum_Q (-1)^{|Q|} Cnt(Q)$ 。

若 $Q=\varnothing$ ,則即爲從 $(0,i)$ 至 $(2n,i)$ ,總方案數爲 $\dbinom{2n}{n}\times m$ 

若 $Q=\{A\}$  ,則我們看成對 $y=0$ 對稱,即爲 $(0,i)$ 至 $(2n,-i)$ ,總方案數爲 $2\cdot  \sum_{i=1}^m \dbinom{2n}{n+i}$,乘 $2$ 因爲對稱性 $Q=\{B\}$ 與其對稱。

若 $Q=\{AB\}$ ,則我們按照 $Q=\{A\}$ 類似翻折兩次 (我的翻折比較奇怪第一次按照 $y=0$ 翻,第二次按照 $y=-m-1$ 翻。其實先按照 $y=0$ 翻在按照 $y=m+1$ 翻即可,但還未找到此雙射) ,那麼即爲 $(0,i)\rightarrow (2n,i-2m-2)$ ,總方案數爲 $2\cdot \dbinom{2n}{n+m+1}\times m$ 。

update:雙射找到了。考慮若先對於 $A$ 翻在對 $B$ 翻,那麼等價於經過 $BA$  的折線。構造也很簡單,將第一次碰到 $B$ 後的翻折,那麼就可以規約到 $ A$ 的子問題。類似的,若當前處理 $Q$ ,那麼可以歸約到 $Q’$ ,僅需要刪除 $Q$ 的最後一個元素即可 

觀察發現,$n\rightarrow n+m+1\rightarrow n+2m+2\rightarrow…$  $|Q|$ 爲偶數均爲 $m+1$ 的等差數列,奇數也如此,證明可以考慮歸納或考慮 $y$ 的變化量 。

那麼我們把 $2\cdot \sum_{i=1}^m \dbinom{2n}{n+i}$ 改寫成 $\sum_{i=1}^m \dbinom{2n}{n+i}+\dbinom{2n}{n-i}$ ,其餘的也類似。

由於組合數上面均爲 $2n$ ,那麼我們只要看下標的係數。

可以發現,當 $i\equiv n\pmod {m+1}$ 使,係數時 $m$ ,否則爲 $-1$ 。

那麼方案數可以寫成 $\sum_{i\equiv n\pmod{m+1}} \dbinom{2n}{i}\cdot (m+1)-2^{2n}$ 。

若暴力計算時間複雜度爲 $\mathcal O(\dfrac{n^2}{m})$ ,在 $m$ 較大時可以過掉,取分界 $\sqrt{n}$ ,那麼當前只要考慮 $m\leq \sqrt{n}$ 的情況。

這種情況也很簡單,我們維護 $f_i$ 爲一個 $m$ 次多項式,$[x^j] f_i$ 表示 $\sum_{j\pmod {m+1}}\dbinom{2i}{j}$ ,$f_{i+1}$  相當於把組合數楊輝三角一下。

時間複雜度 $\mathcal O(nm)$ ,則總時間複雜度爲 $\mathcal O(n\sqrt{n})$ 。   

http://zhengruioi.com/submission/309533

JLOI2015 騙我呢

題意

給定 $n,m$ ,求有多少個 $n\times m$ 的矩形 $x$ 滿足

$x_{i,j}<x_{i,j+1}$

$x_{i,j}<x_{i-1,j+1}$

$0\leq x_{i,j}\leq m$ 

$1\leq m,n\leq 10^6$ ,答案對 $10^9+7$ 取膜。 

題解

第一個條件告訴我們一行中的數是單調遞增的,而第三個條件刻畫了值域在 $[0,m]$ ,所以一行內只會缺失一個數,其餘數從小到大排列。

那麼我們可以通過缺失元素以及第二個條件構造矩形。

舍當前缺失元素爲 $k$ ,則當前行爲 $0,1,…,k-1,k+1,k+2,…,m$ 。

而 $x_{i,j}<x_{i-1,j+1}$ ,那麼下一行爲 $0,1,…,k-2,[k-1,k],[k,k+1],…,[m-1,m]$ ,其中 $[x,y]$ 代表可以選擇的數在 $[x,y]$ 之間。

那麼若當前缺失元素爲 $k$ ,那麼下一行缺失元素可能爲 $[k-1,m]$ 。

則設 $f_{i,j}$ 表示當前在第 $i$ 行,缺失元素爲 $j$ 時的前 $i$ 行情況。

$$f_{i,j}=\sum_{k=j+1}^m f_{i-1,k}=f_{i,j-1}+f_{i-1,j+1}$$

那麼就得到一個 $\mathcal O(nm)$ 的做法了。

考慮將這個式子放到座標系內,那麼問題變爲了從 $(0,0)$ 走到 $(n+1,m) $ 的方案數,其中每一步能往上或右下(當 $y=0$ 時向右)。

將 $x+y$ 相同的歸爲一列重新看這個轉移,並 $f_{i-1,0}\rightarrow f_{i,0}$ 的轉移由於方向爲右看成先向上再往右,那麼該圖不存在斜方向移動的位置。

那麼問題變爲了求從 $(0,0)\rightarrow (n+m+1,n)$ ,且不能經過 $y=x+1,y=x-m-2$ 直線的方案數。

按上題類似做法做即可。 

時間複雜度 $\mathcal O(n+m)$ 。 

https://loj.ac/s/1063915

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章