【還好不是在考場上遇到這道題】
我會說在這之前我都不記得有這麼乙個公式?總之蒟蒻的數論真的太差了……
知道這個公式後一切都變的簡單了。先用o(n*m)預處理出c[i][j](在**裡寫的是f[i][j]) 的值,然後用二維字首和預處理出答案,在查詢時就可以o(1)回答啦!
#include
#include
using namespace std;
int t,k,f[2000+5][2000+5],sum[2005][2005];
int main()
for(int i=1;i<=2000;i++)
for(int j=1;j<=i;j++)
for(int i=1;i<=2000;i++)
for(int j=1;j<=2000;j++)
sum[i][j]=sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1]+(f[i][j]==0);
while(t--)
return 0;
}
組合數(楊輝三角)
原來組合數和楊輝三角是有關係的 楊輝三角上的每乙個數字都等於它的左上方和右上方的和 除了邊界 第n行,第m個就是,就是c n,m 從0開始 所以以後求楊輝三角或者組合數都可以用到下面的遞推公式 includeconst int n 2000 5 const int mod int 1e9 7 int...
組合數 楊輝三角
不難想到,我們可以用二維陣列來實現。上 include intmain i,j scanf d n for i 1 i n i a i 1 1 for i 2 i n i for i 1 i n i printf n return0 這樣我們實現了楊輝三角。更近一步,我們得到 用遞迴的辦法來實現也可...
組合數問題I 楊輝三角
題目描述 組合數 其中n 1 2 n。小蔥想知道如果給定n,m和k,對於所有的0 i n,0 j min i,m 有多少對 i,j 滿足 輸入 第一行有兩個整數t,k,其中t代表該測試點總共有多少組測試資料,k的意義見 問題描述 接下來t行每行兩個整數n,m,其中n,m的意義見 問題描述 輸出 t行...