NOI Online 2 入門組 建設城市

2022-03-29 10:38:16 字數 1755 閱讀 6265

球球是一位建築師。一天,他收到市長的任務:建設城市。球球打算建造 $2n$ 座高樓。為了保證城市美觀,球球做出了如下計畫:

球球喜歡整齊的事物。他希望高樓從左向右排成一行,編號依次為 $1\sim 2n$。

球球喜歡整數,他要求每座高樓的高度都是正整數。

由於材料限制,高樓的高度無法超過 $m$。

球球喜歡中間高,兩邊低的造型。他要求前 $n$ 座高樓的高度不下降,後 $n$ 座高樓的高度不上公升。

球球打算選兩座編號為 $x,y$ 的高樓作為這座城市的地標。他認為只有當這兩座高樓高度相等時,才會讓城市變得美觀。

球球把自己的想法告訴了市長。市長希望得知所有建設城市的方案數。兩種方案不同,當且僅當某座高樓的高度在兩個方案中不同。這個問題可難倒了球球。球球找到了你,希望你能幫他算出答案。由於答案可能很大,你只需要給出答案對 $998244353$ 取模後的結果。

記 $h_i$ 表示第 $i$ 個樓的高度。題意就是說求滿足下面三個條件的數列的個數:

$h_1 \le h_2 \le \cdots \le h_n, h_ \ge h_ \ge \cdots \ge h_$

$h_x = h_y$

$\forall 1 \le i \le 2n, h_i \in [1, m]$

如果沒有 $h_x = h_y$ 的限制,方案數應該是什麼呢?

顯然上公升部分和下降部分的方案數是相等的,我們只考慮前面乙個部分(也就是用 $[1, m]$ 拼長度為 $n$ 的不下降序列的方案數 $f(n, m)$)。利用隔板法的思想,可以先把樓排成一行,在中間依次插上 $m - 1$ 個隔板,相鄰兩個隔板之間的樓的高度相等,求不同的插法。

當然,這時可能會有多個隔板在乙個位置,比如樓房高度為 $\$ 時,隔板的插法就是 $\$。

這違背了隔板法的要求,所以我們加 $m$ 個樓進去,確保這些新加的樓的高度分別為 $1 \sim m$,然後就可以用隔板法了。

比如 $m = 3$,$\$ 這種插法對應的就是 $\$,因為我們要在每兩個隔板見去掉乙個。

所以,相當於是有 $n + m$ 個樓,插 $m - 1$ 個隔板的方案數。隔板顯然是插在間隔裡,$n + m$ 個樓有 $n+m-1$ 個間隔,所以,方案數就是:

$$ f(n, m)=\binom $$

接下來,考慮加上 $h_x = h_y$ 的條件。

$$ f(n+x-y, m) \times f(n, m) $$

$h_1 \sim h_$ 這 $x - 1$ 個樓應當 $\in [1, i]$,所以方案數為 $f(x - 1, i)$;

$h_ \sim h_n$ 這 $n - x$ 個樓應當 $\in[i, m]$,所以方案數為 $f(n - x, m - i + 1)$;

$h_ \sim h_$ 這 $y-n-1$ 個樓應當 $\in[i, m]$,所以方案數為 $f(y-n-1, m - i + 1)$;

$h_ \sim h_$ 這 $2n - y$ 個樓應當 $\in[1, i]$,所以方案數為 $f(2n - y, i)$。

然後,對於每個 $i$ 的加起來就是了,也就是說,答案為:

$$ \sum_^ f(x - 1, i) \times f(n - x, m - i + 1) \times f(y-n-1, m - i + 1) \times f(2n - y, i) $$

提前 $o(n)$ 預處理階乘和逆元,這題就解決了,情況 1 計算時間複雜度 $o(1)$,情況 2 是 $o(m)$,可以通過此題,**就不貼了。

其實把 n 開到 1e9 也沒啥呀,分塊打表很香啊

NOI Online 2 入門組 未了 題解

目錄題面傳送門 不想打 latex 了,自己看吧。首先分析一下題目,不難發現,在高度為 x 的地點使用魔法可以讓sisyphus多走 2x 年,我們可以利用貪心的思想,盡量使用上面的魔法,這樣就可以使用更少。c 的stl真好用一邊sort就行了 但是,我們一看資料範圍 l,v leq 10 9 如果...

NOI Online 2 提高組 遊記

沒 noi online 1 掛的慘就來寫遊記吧,不知道為啥 noi online 1 民間資料測得 60 分的 t1 最後爆零了.昏昏沉沉的醒來,吃了早飯,等到 8 30 進入比賽網頁。這次 ccf 吸取了上次的教訓,上去很快一點都不卡 體驗感很好 先看了 t1,然後突然覺得自己打某次 cf 做過...

NOI Online 2 提高組 子串行問題

給定乙個長度為 n 的正整數序列 a 定義乙個函式 f l,r 表示 序列中下標在 l,r 範圍內的子區間中,不同的整數個數。現在,請你求出 sum n sum n f l,r 2 由於答案可能很大,請輸出答案對 10 9 7 取模的結果。挺有意思的題目。比如乙個數 a i 它對哪些 f 是有貢獻的...