[jzoj]5965. 【NOIP2018提高組D2T2】填數遊戲(推式子)
Problem
-
給定你一個 網格棋盤,要求用 填充每一個格子.
-
使得任意兩條從原點 到 的不完全相交路徑,先走右方向(字典序大)的路徑的 路徑字典序相對小.
-
求方案數.
Data constraint
Solution
-
其實這題可以不用 .
-
顯然對於棋盤上的某一種填法 ,滿足
-
且顯然如果當 時, 形成一個封閉局面,這個局面的每條對角線上的數必須相同,這樣是為了保證 的每條路徑相同.
-
那麼現在就可以分類討論了:
-
兩格相同:
-
這種情況下,只需要使得 的所有對角線上數字相同.
-
同時第一列和第一行會受其影響,仔細推一波式子可以搞定.
-
答案形如 .
-
這是最簡單的情況。
-
-
兩格不同:
-
相同:
-
這一種情況也相對簡單,也是一波式子可以搞定的.
-
這是次簡單的情況,其實與第一種情況完全類似,答案的形式也是一樣的.
-
-
其中一對相同:
-
不難發現 與 或 相同是等價的.
-
不妨假設 相同.
-
設 表示到第 條對角線上時,在前兩行的第 條斜線上及以前有過“配對成功”的方案數。
-
“配對成功” 是指在最上邊兩行中,第二行的某一格與其斜上方的格相同,稱之為配對成功。
-
因為一旦配對成功,接下來第二行的填數就會有限制.
-
當第一行與第二行全部沒有配對成功時,當前的一條對角線實際上有 種填法,而當第 條對角線配對成功時,實際上只有 種填法.
-
那麼考慮一下轉移就可以寫出:
-
表示的含義是:
-
(在 條斜線上以前就匹配成功的方案 ) *(當前第 條對角線的 種填法) + ( 條斜線第一次匹配成功的 種填法) * (當前第 條對角線因不受任何影響所以有 種填法.)
-
-
-
-
這樣就可以計算出當 的答案了.
-
當 時,前兩種分類討論是很容易繼續推廣的,關鍵是第三種 分類討論應當如何推廣.
-
不妨畫一下圖,我們發現,實質上答案是
-
至於為什麼也是按上面第三種分類討論一樣,根據最後一條對角線是否匹配成功進行討論.
-
而當 時,