數論的題大概有幾類,積性函式、同餘方程、概率、組合數學、其他一些什麼東西和數論攪在一起= =
積性函式的題一般都要推公式,反演,線性篩,有時要遞迴處理子問題、杜教篩、應用某個函式的特殊性質
同餘方程的問題有方程解個數和求解等東西,有的在指數上又變一下,然後就crt,excrt,原根,bsgs,millerrabin,rho
概率就dp,容斥,配合組合數學弄
組合數學分解質因數,有個lucas定理(p是質數),快速階乘(迴圈節,遞迴處理子問題)
一些東西弄成卷積後可以用fft優化(比如dp方程) 傳送門
用fft轉回整數記得+0.5
fft在很多時候容易爆精度,有質數模數且能處理的規模即2k
≥n可以考慮ntt,不然就用mtt,預處理n次單位複數根的話fft效率提高很多∑n
i=1i
2=n(
n+1)
(2n+
1)6
∑ni=
1i3=
n2(n
+1)2
4 求自然數冪和,有幾類方法
第一類斯特林數(不會…)
遞迴 設f(
n,k)
=∑ni
=1ik
(n是2的倍數的情況)(懶得打分號了湊合著看吧) f(
n,k)
=∑n/
2i=1
ik+∑
n/2i
=1(i
+n/2
)k =
f(n/
2,k)
+∑n/
2i=1
∑kj=
0cjk
(n/2
)jik
−j =
f(n/
2,k)
+∑kj
=0cj
k(n/
2)k−
j∑n/
2i=1
ij =
f(n/
2,k)
+∑kj
=0cj
k(n/
2)k−
jf(n
/2,j
) o(
k2lo
gn)
dp求解 (n
+1)k
+1=∑
k+1j
=0cj
k+1n
j−> (
n+1)
k+1−
nk+1
=∑kj
=0cj
k+1n
j−> ∑
ni=1
(i+1
)k+1
−∑ni
=1ik
+1=∑
ni=1
∑kj=
0cjk
+1ij
−> (
n+1)
k+1−
1=∑k
j=0c
jk+1
∑ni=
1ij−
> c
kk+1
∑ni=
1ik=
(n+1
)k+1
−1−∑
k−1j
=0cj
k+1∑
ni=1
ij−> f
(n,k
)=(n
+1)k
+1−1
−∑k−
1j=0
cjk+
1f(n
,j)k
+1 o
(k2)
不知道寫什麼…就這樣吧
關於堆,棧的一些東西
堆和棧的區別 1 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 u 1 棧區 stack 由編譯器自動分配釋放 由編譯器在需要的時候分配,在不需要的時候自動清除 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。u 2 堆區 heap 一般由程式...
關於VBO的一些東西
有時候你不得不承認,opengl的開發真的不如directx,特別對於入門的人來說,乙個簡單的概念可以讓我嚼上幾天不得騎姐。vbo可以說是opengl中里程碑似的東西,通過vbo我們可以把需要渲染的圖元的頂點資訊,直接上傳儲存在gpu的視訊記憶體中。由於最早的opengl不支援例項化繪製,導致在繪製...
關於爬蟲的一些東西
這幾天在寫乙個爬蟲,實際上整個過程和思路很簡單,難點在於繁雜的格式處理和一些未知的小問題,還有對python不太熟悉.基本上是邊學邊寫.記錄一些過程中值得記住的東西.關於python的 1.檔案的開頭要用 coding utf 8 2.建立資料夾可以要import os os.mkdir r new...