【校內模擬】【18-10-16】膜法 【組合數學】

(拖更N天終於想起來我還有博客
(校內模擬的題面&代碼聯賽後解除封印~)

題解

1.0 認(hu)真(luan)分析

一開始看這道題看了半天,還以爲是什麼區間查詢之類的題,後來認認真真讀了讀樣例,才理解過來——這是個組合數學題!

當且僅當存在至少一個環節,選擇的書不同,或者在同一本魔法書上選取的咒語不一樣。

這不就是組合數嘛……

分攤到每一步上,在 li 處有 li-k+1 種選擇,在 li+1 處有 li+1-k+1 種選擇……然後最後在 ri 處有 ri-k+1 種選擇。

又因爲l到r是連續的一段區間,所以每一步的方案數可以表示如下:
(借用於ZXY大佬的blog,%%%其實是我打不來

按照這個式子預處理一波階乘和逆元,可以得到60分。

1.1正解

我們發現,剛纔之所以拿不了滿分,主要是在計算上花了很多時間。

那麼我們可以把式子簡化一些嗎?

下面又是蒟蒻的我想不到的了

(再次借用於%%%神仙zxy的博客 )

我們要運用一些組合數學的定理:

在這裏插入圖片描述
​然後……
在這裏插入圖片描述

然後變成這樣就非常方便了對吧?

這樣一來,對於每一次個l和r,我們只需要計算兩個值就可以求出這一段的方案總數,也就是O(1)的處理時間。預處理本身也只需要O(N)不到的複雜度。

於是,我們就開心的A掉這道題了~

總結:

組合數學一直是數論專題的重要考點之一,對於這方面的各種推論和運用,我們需要記住幾個常用的定理和公式,一般就能保證自己做題時思路的正確性了。

還有重要的一點(就是我今天掛掉的主要問題 ),取模運算時一定要把除法轉化爲乘上逆元!要不然就算你的算法正確也照樣GG了~

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