bzoj crash的數字** 2154
題目大意
n , m <= 10^7
終於會正經的莫比烏斯繁衍了。就是包含兩種變換1.莫比烏斯繁衍、莫比烏斯變換 2.考慮貢獻(被計算的次數),進行列舉順序的變化,從而達到線性篩的目的。
因為過程太繁瑣,用替代輸入
減少取模次數有奇效,不知道為什麼如此慢
1 #include2 #include3 #include4 #include5using
namespace
std;
6#define maxn 10000020
7#define mod 2010100989
intprime[maxn],cnt;
10long
long
f[maxn];
11bool
tag[maxn];
12long
long
n,m,ans;
1314
void
init()
24else27}
28}29for (register long
long i = 1 ; i <= n ; i++) f[i] = (f[i] *i);
30for (register int i = 2 ; i <= n ; i++) f[i] = (f[i] + f[i - 1]) %mod;31}
32 inline long
long power(long
long x,long
long
y)39
return res %mod;40}
41int
main()
51 ans = (ans * power(4,mod - 2)) %mod;
52 printf("
%d\n
",(int)((ans % mod + mod) %mod));
53 }
莫比烏斯函式與莫比烏斯反演
1.1 莫比烏斯函式 莫比烏斯函式可以看做乙個輔助函式,它在莫比烏斯反演公式中用到。1.2 莫比烏斯反演 莫比烏斯反演公式是 根據和函式來求算數函式的乙個公式。1.3 算數函式 所有在正整數上運算的函式稱為算數函式。1.4 和函式 設 f 是算數函式,f 的和函式為n的所有約數的算數函式之和。1.5...
莫比烏斯反演 二 莫比烏斯反演定理
首先設兩個任意函式f x 和f x 定義運算 f x sum f d 這時就可以用f x 表示f x f 1 f 1 f 2 f 1 f 2 f 3 f 3 f 1 f 4 f 4 f 2 f 1 f 5 f 5 f 1 f 6 f 6 f 3 f 2 f 1 這時可以試著用f x 表示f x f ...
莫比烏斯反演
首先 莫比烏斯函式有個性質 d n d 1 n 1 0 n 1 證明 n 1時,不做多餘說明。n 1 根據唯一分解定理,可以分解n ki 1pai i 對於那些含平方因子也就是存在ai 不為1的數,它的函式值為0,對答案沒有任何貢獻。所以我們來看看那些是互異素數乘積的數,每乙個成為它約數的數是什麼樣...