Jzoj4906 組合數問題

2022-05-09 15:31:49 字數 687 閱讀 1920

題意:noip2016d2t1

我們考慮將每個數字質因數分解來做即可

線性篩求出所有2000以內的質數讓後直接暴力分解即可,計算c(i,j)是否為k的倍數,最後加上字首和

#include

#include

int w[500],c=0,n,m,t,k,pr[2010]=;

int l[2010],f[2010][10][2];

int s[2010][2010],s[2010][2010];

void mul(int* v,int i,int d)

int main()

for(int j=0;j2000;++j)

} for(int x,i=2;i<=2000;++i)

if(x>1)

} for(int i=0;iif(pr[w[i]]!=i) puts("wrong");

scanf("%d%d",&t,&k);

int v[300];

for(int i=1;i<=2000;++i)

for(int j=i+1;j<=2000;++j) s[i][j]=s[i][j-1];

} for(int a,b,i=0;iscanf("%d%d",&a,&b);

printf("%d\n",s[a][b]);

}}

Jzoj4906 組合數問題

題意 noip2016d2t1 我們考慮將每個數字質因數分解來做即可 線性篩求出所有2000以內的質數讓後直接暴力分解即可,計算c i,j 是否為k的倍數,最後加上字首和 include include int w 500 c 0,n,m,t,k,pr 2010 int l 2010 f 2010 ...

poj 1942 組合數問題

本題很簡單,但處理方法也很特殊,用double來存中間結果,神!同樣的公式,不同的處理方法,效果不同。如 選擇n時一定選小的,節約時間。處理階乘有三種辦法 1 傳統意義上的直接遞迴,n的規模最多到20 太小了,在本題不適用,而且非常慢 2 稍快一點的演算法,就是利用log 化乘為加,n的規模雖然擴充...

NOIP2016 組合數問題

題目描述 第一行有兩個整數t,k,其中t代表該測試點總共有多少組測試資料,k的意義見 問題描述 接下來t行每行兩個整數n,m,其中n,m的意義見 問題描述 t行,每行乙個整數代表答案。輸入樣例 1 1 23 3 輸入樣例 2 2 54 5 6 7 輸出樣例 1 1輸出樣例 2 07 樣例1說明 在所...