【洛谷p2822】组合数问题

(突然想          ??忘掉了wdt)

(行吧那就%%%hmr

组合数问题【传送门】

(因为清明要出去培训数学知识所以一直在做数论)


组合数<=>杨辉三角形(从wz那拐来的技能

#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
#include<algorithm>
#include<cstring>//万年不变头文件
using namespace std;
int t,k,c[2010][2010],f[2010][2010],n,m;//c数组用来存放杨辉三角是否为k的倍数,
f数组用来存放在1-c[i][j]中为k的倍数的数个数
void write(long long a){ //从某只大佬那拐来的神奇”快输“,我就这么叫了【吐舌】 if(a>9)write(a/10); putchar(a%10+'0'); } int main() { scanf("%d%d",&t,&k); for(int i=0;i<=2000;i++)c[i][0]=1; for(int i=1;i<=2000;i++) for(int j=1;j<=i;j++) c[i][j]=(c[i-1][j-1]+c[i-1][j])%k;//见上面懒得写辽 for(int i=1;i<=2000;++i){ for(int j=1;j<=i;++j){ f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]; if(!c[i][j])f[i][j]++; } f[i][i+1]=f[i][i]; } for(int i=1;i<=t;i++){ scanf("%d%d",&n,&m); if(m>n)m=n;//需要满足取小 write(f[n][m]); putchar(' '); } return 0; }

end-

(刷存在:qingmingyaoqupeixunjiuwomenzuigui,qifen

原文地址:https://www.cnblogs.com/zhuier-xquan/p/10612692.html