JZOJ5965【NOIP2018提高組D2T2】填數遊戲
題目
作為NOIP2018的題目,我覺得不需要把題目貼出來了。
大意就是,在一個
的
好吧,有點簡陋……
比賽思路
一眼看下去,誒,
這麼小,一下子就想到了狀壓DP。
然後有一點很顯然:
。
依照這個性質,我打出了一個狀壓DP。
然後發現,第二個樣例崩了。
然後手算了半天,推出來另一個朦朧的性質……
然後看看時間,啊,不能再推式子了!沒時間啦!
匆匆打個暴力,去思考第三題。
正解
這題的正解有很多種。
的確有狀壓DP,不過最優的方法還是lyl推了兩節數學課的神方法。
用這個方法,就算開到long long範圍,也可以秒過。
其實這題還有一個性質:
如果
,那麼以
為左上角的矩形的所有對角線上的數字相等。
至於為什麼,也是比較好理解的。
如果有條到
的路徑,可以分成兩條分別走到
和
,再走到
,在這個時候它們是相等的。如果這個矩形中有不相等的路徑,那麼必定存在一種方案使通過
的走小的,通過
的走大的,不符合條件。所以在這個矩形中的左上角到右下角的路徑相等,要讓路徑相等,對角線就要相等。
有了這個條件,這道題就變得複雜起來。lyl大佬發揮出他超強的推式子能力,把這題A穿了。
首先,我們可以分類討論。
先討論
的情況
- 當
時
在這個情況比較簡單,答案為 - 當
時
-
當 時
也比較簡單, -
當 時
黃色表示這片區域內的對角線相等。
設 表示到 這條對角線, 或之前對角線的上面兩個一樣的方案數。
(這裡的對角線為 到 為右上角的兩個對角線,編號從 開始)
那麼
表示 或之前已經有了對角線上面兩個一樣的,那麼第 條對角線被限制了,所以只有 種。
表示 有上面兩個一樣,那麼第 條不受限制,有 種。接下來我們計算這種情況的方案數:
估計問題在 這裡面。
表示以 為右上角的對角線的上面兩個不一樣,之前的也不一樣,那麼以 為右上角的對角線不受影響,方案為
表示以 為右上角的對角線的上面兩個一樣,之前的不一樣,那麼以 為右上角的對角線還是不受影響,方案為
-