牛牛的算術 公式推導

2021-10-24 01:55:27 字數 1381 閱讀 6904

時間限制:c/c++ 2秒,其他語言4秒

空間限制:c/c++ 524288k,其他語言1048576k

64bit io format: %lld

牛牛最近學習了取模是什麼 於是他看到了下面這一道題:

多次詢問:每次詢問包含乙個正整數 nnn 要求你輸出下列結果

∏i=1n∑j=1i∑k=1ji×j×k\prod_^n \sum_^i \sum_^j i\times j\times k∏i=1n​∑j=1i​∑k=1j​i×j×k

為了避免結果過大 只需要輸出這個式子對 199999199999199999(=2×32×41×271+1=2\times 3^2 \times 41 \times 271+1=2×32×41×271+1,乙個質數) 取模的結果。

第一行乙個正整數  ttt 表示詢問次數。

接下來 ttt 行 每行乙個正整數 nnn 含義如上所述

ttt 行非負整數 代表答案。
示例1

複製5 1 2 3 4 5

512345

複製1 14 1050 73001 100955

1

141050

73001

100955

n=2 的情況:(1*1*1)*(2*1*1+2*2*1+2*2*2) = 14
n≤10105n \leq 10^n≤10105

保證輸入總長度 ≤5×105\leq 5 \times 10^5≤5×105 且 t≤105t \leq 10^5t≤105

個人覺得唯一的難點在於剛開始的化簡

關於這個怎麼推出來的?我問了幾個人,覺得目前能用的方法就是歸納,取n比較小的時候然後找規律去拆拆加加,當然數學好的當我沒說。

如果出了這一步,那就預處理後面兩個字首,然後再處理乙個連乘的sumi[i].

另外乙個trick就是n很大,mod小,所以當n大於模數並且會列舉到mod的時候,後面的模數就都是0了(因為後面的都是模數的倍數)這個trick在多校裡也有。

#include#include#include#include#include#include#include#include#include#define debug(a) coutif(len>6) cout<<0<=mod) cout<<0<>t;

while(t--)

return 0;

}

Fibonacci Numbers公式推導(數論)

題目 fibonacci numbers 簡介 如果斐波那契數小於8位的就輸出這個數,大於8位的就輸出前四位,以及後四位 公式部分 fibonacci求和公式 f n 15 1 52 n 1 52 n a0 0,a 1 1 beginf left n right dfrac left left df...

矩陣求導公式的推導和計算(公式推導法)

但是在實際的公式推導中,我們不可能按照定義逐個進行求導,一方面這樣很麻煩,另一方面,對於包含矩陣和向量的公式的求導用這種方式進行求解也是不合適的。就好像你不會每次在求導的時候都是從極限的定義開始求解的一樣。這部分內容,相信大部分同學和我一樣,在簡單推導的時候還可以看個大概,遇到複雜的就不知所云。究其...

Catalan數公式推導

如何把下列遞迴公式 f n f 0 f n 1 0 f 1 n 1 1 f 2 f n 1 2 f n 1 0 f 0 轉化為 f n c 2n,n n 1 可以利用母函式 發生函式 令g x f 0 f 1 x f 2 x 2 那麼遞迴公式左邊就是g x 的n次項係數。右邊是g x 2的n 1次項...