原创 CodeForces 1225E Rock Is Push(dp + 前綴和優化)

    大致題意:一個迷宮,裏面有很多箱子,你可以向右或者向下走。當你遇到一個或者多個箱子的時候,你可以把箱子往你移動的方向推動,但是不能把箱子推出到牆壁外面。你從左上角出發,問你有多少種方法到右下角。 考慮如果沒有箱子,那麼就是一個

原创 CodeForces 1251F Red-White Fence(NTT + 組合計數)

    大致題意:給你一堆木條,一些是白色的,一些是紅色的。然後要把這些木條拼到一起構成長度先遞增後遞減的樣子,然後要求紅色木條長度最長,問最後使得這個拼湊出來的多邊形的周長爲Qi的方案數是多少。 首先,很顯然周長相當於是2*(n

原创 計蒜客 ICPC2019 上海網絡賽 C Triple(FFT + 組合計數)

    大致題意:給你三組邊長,讓你從三組邊長裏面各選出一條邊,問組成非嚴格三角形的方案有多少種。這裏非嚴格是指,可以退化爲一條直線。 這題其實算是半個原題,詳見HDU 4609。 那道題是一組邊選三條構成嚴格三角形,這裏是三組邊。其

原创 計蒜客 2019ICPC 南昌網絡賽 F Megumi With String(後綴自動機)

    大致題意:給你一個字符串S和一個多項式f(x),然後再告訴你一個長度。隨機取這樣一個長度的字符串T,如果T包含S的某個子串且這個子串的長度爲len,那麼T的權值就增加f(len),如果包含多個子串,那麼權值爲他們的和。現在問

原创 計蒜客 2019ICPC 徐州網絡賽 H function(Min25篩)

    大致題意:定義f(n)表示n分解質因數後,各個質因子的冪次之和,現在讓你計算。 顯然只需要考慮質數,計算質數的貢獻。我們令                                           那麼質數p的貢獻就

原创 計蒜客 ICPC南昌網絡賽 G tsy's number(莫比烏斯反演 + 線性篩)

    大致題意:對於給定的n,要你計算:                                 首先,我們很容易可以推出 ,那麼這個式子就可以化簡爲:                                  

原创 CodeForces 932G Palindrome Partition(迴文自動機 + dp)

    大致題意:給你一個字符串,讓你把它分爲k個部分,k爲偶數。設這k個部分分別表示爲s1,s2,...,sk,問使得對於每一個i都滿足的劃分方法有多少種,也即使得這k個部分構成迴文的方法有多少種。 由於是迴文,我們當然要想辦法往回文

原创 HDU 4878 ZCC loves words(AC自動機 + dp + 矩陣快速冪 + 中國剩餘定理)

    大致題意:給你一些匹配串和一個很長的長度L。讓你計算所有長度爲L的小寫字母構成的字符串的得分總和對5047621取模後的數值。這裏,每個字符串s的得分定義爲,若s的子串s[i..j]等於第k個匹配串,那麼產生p[k]*(len

原创 牛客練習賽40 F 小D的劍陣(最小割 + 構圖)

    中文題。 1000的範圍,有一些約束條件,其實很容易想到應該是用最小割去做。一開始本來想的是轉換成閉合子圖,這樣可以處理兩個都取的情況。但是閉合子圖無法處理兩個都不取的情況,然後也就不能這麼做了。本題用到了一些非常巧妙的技巧。

原创 牛客練習賽40 D 小A與最大子段和(斜率優化dp + 二分)

    中文題。 原本的最大連續子串和就是一個dp的問題,所以這裏也很容易往dp方向去想。與經典問題類似,我們同樣令dp[i]表示以i爲結尾的連續子串的最大和。由於這裏的和的定義有不同,所以我們這裏只用一維去表示貌似不是很夠,因爲如果

原创 CodeForces 1114F Please, another Queries on Array?(線段樹 + 狀態壓縮 + 數論)

    大致題意:給你一長度爲n的序列,和q個操作。一個是區間乘以某個數字,另一個是查詢區間積的歐拉函數對1e9+7取模的結果。出了n和q,這裏所有出現的數字都是小於300的。 這裏如果直接做,顯然是不行的,因爲歐拉函數雖然具有積性,

原创 CodeForces 1110F Nearest Leaf(離線處理 + 線段樹)

    大致題意:給你一棵n個節點的帶有邊權的樹,給你q個詢問。每個詢問給出一個點x和一個區間[l,r],問在dfs序在這個區間的點中,距離x最近的葉子節點距離x的距離是多少。 首先,我們考慮,如果每個詢問的點x都是根,那麼我們每

原创 CodeForces 1111E Tree(LCA + DP +樹狀數組)

    大致題意:給你一棵包含n個節點的無根樹,然後q個詢問,每個詢問給出一系列點和m、r。表示問你,把根設置爲r的情況下,把給定點分爲至多m部分,要求每一部分至少一個給定點,且一個部分中不能出現兩個給定點一個點是另一個點的祖先,問

原创 BZOJ 2219 數論之神 (BSGS + CRT + 原根)

    簡單粗暴的題意:求 X^A ≡ B(mod 2K+1) 在 X∈[0,2K]內有幾個解。 首先,這個2*K+1並不一定是一個質數,因此我們可以考慮對2*K+1進行分解質因數。根據中國剩餘定理,如果我們可以把2*K+1拆成,那麼

原创 CodeForces 1106F Lunar New Year and a Recursive Sequence(BSGS + 原根 + 矩陣類)

        大致題意:告訴你F的遞推式,與前K個數字有關。但是隻告訴你初始前K-1個項的值和第N項的值,讓你求是否存在一個滿足條件的第K項。 首先,由於這個遞推式是: