原创 CF600E Lomsat gelral( on tree)

題面 先考慮O(n2)O(n^2)O(n2)暴力,DFSDFSDFS到每個點之後再暴力統計它的子樹答案即可 仔細觀察,我們發現一個點沒有好好利用它兒子的貢獻.可以發現,每個點最後遍歷到的一棵子樹貢獻可以被保留,這樣計算該節點答案的時候

原创 CPOJ九校聯考第四場day1 排列permutation

題面 試圖構造二分圖的模型,若第iii個位置上的數爲aia_iai​,那麼左側的iii向aia_iai​連邊. 考慮用容斥計算答案,顯然 ans=∑i=0nfi(n−i)!(−1)i ans=\sum_{i=0}^{n}f_i(n

原创 牛客網NOIP賽前集訓營-提高組(第四場) C滅蟲

題面 考慮DP 先把所有點離散化,設viv_ivi​爲離散化後第iii大的點的位置.按ppp排序,設fi,jf_{i,j}fi,j​表示當前DP到第iii個點,最右端覆蓋到jjj的最大區間總長度 考慮第iii個區間往左和往右兩種轉移:

原创 牛客網NOIP賽前集訓營-提高組(第三場) A-管道維修

題面 考慮計算每個格子至少kkk步被修復的概率fi,j,kf_{i,j,k}fi,j,k​(gi,j,kg_{i,j,k}gi,j,k​爲恰好kkk步被修復的概率) fi,j,k=∑k′≥kgi,j,k′ansi,j=∑kk⋅gi,j

原创 牛客網NOIP賽前集訓營-提高組(第二場)_B_分糖果

題面 考慮容斥(這也能容斥??..) (把和前一位相同的位看作1,不同的看作2,全爲2的方案即爲所求,這應該就是一個普通的容斥問題了) 先考慮鏈的情況,顯然有 fi=∑jfj∗min(aj+1…ai)∗(−1)i−j+1 f_i=\s

原创 CPOJ104 整除

題面 考慮分開每個質數處理,最後合併答案. 設這cc 個質數爲p1,p2,…,pcp1,p2,…,pc n|(xm−x)⇔p1|(xm−x)∧p2|(xm−x)∧⋯∧pc|(xm−x)n|(xm−x)⇔p1|(xm−x)

原创 CPOJ111 跳房子

題面 每走一步相當於進行一次置換,我們可以用一棵線段樹來維護一個序列走完一段區間之後會變成什麼.詢問的時候先算出走了多少圈整,用快速冪求解,再把餘數走掉.修改的時候直接在線段樹上修改即可. Code 一開始合併兩個區間寫

原创 CPOJ 矩陣交換

題面 考慮用鏈表維護,矩陣裏每個點維護一個向下和向右的指針,每次O(n)O(n) 維護即可 Code

原创 CPOJ 排列變換

題面 每次肯定是選一個不在自己位置上的數連續換換換直到所有經過的位置都滿足要求爲止 一次換換換可能是這樣的: 顯然可以把紅圈裏開倒車的所有數都先換掉,這樣顯然可以讓答案變小,然後剩下來的數都是單調的,再計入答案即可. Code

原创 CPOJ “或”遊戲

題面 顯然只讓最高位最高的一個數乘最優,然後算出前後綴算一下就可以每一個數O(1)O(1) 算答案了. Code

原创 FFT學習筆記

FFT在OI中主要被用來計算卷積(類似於多項式乘法) 主要分爲三步: 1.將多項式的係數表達式轉換爲點值表達式 2.利用點值表達式計算多項式乘法 3.將結果轉換爲係數表達式 在第一步中我們設wkn=cos(k2π)+sin(k2π

原创 BZOJ4162: shlw loves matrix II

4162: shlw loves matrix II 如果我們已知矩陣AA 的特徵多項式p(x)p(x) ,其最高次數爲kk ,由哈密爾頓-凱萊定理得知 p(A)=a0An+a1An−1+⋯+akAn−kp(A)=a0An+a1An−

原创 (擴展)BSGS學習筆記

現有同餘方程 ax≡b(mod p)ax≡b(mod p) 其中(a,p)=1(a,p)=1 如果暴力枚舉xx 的話,根據歐拉定理 aφ(p)≡1(mod p)aφ(p)≡1(mod p) 效率是O(p)O(p) 的 現在我們

原创 網絡流學習筆記

0x00網絡流簡介   網絡流G=(V,E)G=(V,E) 是一個有向圖,其中每條邊(u,v)(u,v) 均有一個非負的容量值,記爲c(u,v)≥0c(u,v)≥0 .如果(u,v)∉E(u,v)∉E 則可以規定c(u,v)=0c(u,v

原创 SAM學習筆記

推薦閱讀WC2012陳立傑後綴自動機講稿 SAM相當於把一個字符串所有後綴建出一個AC自動機,只不過構造方法要巧妙一點. SAM中每個節點代表一個rr 的集合,表示對於所有j∈[mi,ma]j∈[mi,ma] ,sri−j+1,ris