字首積與字尾積求大數取模

2021-06-07 19:19:30 字數 451 閱讀 2531

給出數列a1;a2; : : : ;an,並設

現要求把所有的bi 算出來。

輸入包含多組測試資料。對於每組資料,第1 行,1 個整數n(1  <= n <= 100 000), 表示數列的長度。第2

行,n 個整數a1,a2, ......,an(1 <= ai <= 109),表示給出的數列。輸入以乙個0 表示結尾。

對於每組資料,輸出一行,n 個整數用空格分隔,表示算出的b1,b2, ....,bn。

3

1 2 3

0

6 3 2/*#include#define maxn 100005

int a[maxn], b[maxn];

int n, m=1000000007;

int main()

for(i=1;i

積性函式求字首和

若函式f滿足 a,b互質有f a b f a f b 我們則稱f是積性函式。常見的比如尤拉函式,莫比烏斯函式,都屬於積性函式。線性篩法,利用積性函式的積性,篩素數同時可以計算積性函式。然而有些問題要求低於線性的複雜度。同樣利用積性函式的性質。舉常見的莫比烏斯函式為例。求 ni 1 i 1 n 10 ...

通過字首積和字尾積求解除自身以外陣列的乘積

給你乙個長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成此題。高階 你可以在常數空間...

快速冪與大數乘積取模

計算a n p的值,怎麼算呢?直接算當然可能溢位。我們有一條引理 a b p a p b p p.在這個引理上進行指數上的合併從而得到快速冪演算法。具體地,有兩種思路,一種是減小a值,以防溢位,一種是減小b值,加快計算。怎麼減小a值?a a p,就把a的值降到了p以下。對b呢,我們發現,a p a ...