有時,會遇到這樣的問題:求 \(\sum_^n i^kx^i\)。
其中,k很小,n很大,x可以是數,矩陣,或多項式。
通常,有兩種做法:
將x放入矩陣中,並依次把\((a+1)^i\)拆開,把係數放入矩陣(其實就是楊輝三角)。
這個方法比較容易,但時間複雜度為\(o(k^3\log n)\)。
使用遞迴。從\(\frac n 2\)的答案推到\(n\)的答案。
根據n的奇偶性分類討論。
遞迴時維護0~k的所有答案。**比較難寫,注意細節。
時間複雜度\(o(k^2\log n)\)。
例題:這道題比較卡常,需要使用方法二。
**:
#include #define md 1000000007
void fuz(int a[102][102],int b[102][102],int n)
}void chf(int a[102][102],int b[102][102],int n)
; for(int i=1;i<=n;i++)
}} fuz(a,jg,n);
}void chf(int a[102][102],int x,int n)
}void add(int a[102][102],int b[102][102],int n)
}int g[102][102],a[102][102],b[102][102],c[102][102],mi[102][102],ag[102][102],bg[102][102],cg[102][102],jh[102][102];
void dfs(int m,int n)
return;
} if(m%2==0)
else }
int main()
dfs(k,n);
for(int i=0;ireturn 0;
}
用等比數列解析偽列level的另乙個作用
我們都知道,level是個偽列,代表當前節點所在的層級 對根節點來說,level返回1 根節點到子節點返回2,以此類推。借助level,我們可以控制對錶的掃瞄次數。第一次掃瞄得出的結果集的level都是1,第二次掃瞄的結果集的level都是2,依此類推。實驗環境 sql create table t...
用等比數列解析偽列level的另乙個作用
我們都知道,level是個偽列,代表當前節點所在的層級 對根節點來說,level返回1 根節點到子節點返回2,以此類推。借助level,我們可以控制對錶的掃瞄次數。第一次掃瞄得出的結果集的level都是1,第二次掃瞄的結果集的level都是2,依此類推。實驗環境 sql create table t...
八皇后問題的一種python解法
八皇后問題,是乙個古老而著名的問題,是回溯演算法的典型例題。該問題是十九世紀著名的數學家高斯1850年提出 在8x8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有76種方案。1854年在柏林的象棋雜誌上不同的作者發表了40種...