组合数打表+二维前缀数组优化——组合数问题
来源:互联网 发布:log4j2 java web 编辑:程序博客网 时间:2024/05/30 02:22
题目来源
洛谷P2822组合数问题
https://www.luogu.org/problem/show?pid=2822
思路
输入t和k之后 预处理一个模k意义下的2000的杨辉三角表
前缀数组num[n][m]记录C(0,0)~C(n,m)的矩形中有意义且(%k后)为0的组合数的数量
可以证得num[i][j]即为题中所求的对于所有的0<=i<=n,0<=j<=min(i,m)中满足C(i,j)是k的倍数的(i,j)的数量。
代码(C++)
#include <cstdio>using namespace std;int T,k,n,m,s,yh[2010][2010];long long num[2010][2010];inline void preyhsj();//预处理 int main(){scanf("%d%d",&T,&k);preyhsj();for(int t=1;t<=T;++t){scanf("%d%d",&n,&m);printf("%lld\n",num[n][m]);}return 0;}inline void preyhsj(){yh[0][0]=1;for(int i=1;i<=2000;++i){yh[i][0]=1;yh[i][i]=1;s=0;for(int j=1;j<=i;++j){yh[i][j]=(yh[i-1][j-1]+yh[i-1][j])%k;if(yh[i][j]==0)++s;num[i][j]=num[i-1][j]+s;}for(int j=i+1;j<=2000;++j)num[i][j]=num[i][j-1];}return ;}
阅读全文
1 0
- 组合数打表+二维前缀数组优化——组合数问题
- noip2016组合数问题 组合+前缀和
- noip2016 Day2 T2-组合数问题-组合数学-前缀和
- tyvj 4877 组合数 唯一分解定理+前缀和优化
- POJ3046 多重集组合数 dp+前缀和优化+滚动数组 (包含类似优化的小总结)
- .NET下,利用二维数组“组合”查询之优化
- LuoguP2822[NOIP2016] 组合数问题 解题报告【组合数取模+矩阵前缀和】
- 数组组合数输出
- 数组的组合数
- 一道组合数问题
- 组合数问题
- NYOJ 组合数问题
- 数的组合问题
- NOIP2016day2t1 组合数问题
- 组合数问题
- [NOIP2016] 组合数问题
- NOIP2016组合数问题
- P2822 组合数问题
- ssm练手(CRUD) 3、利用pagehelper分页,并进行测试
- 图片二次采样
- PPAC
- HDU 1058:Humble Numbers (水)
- 两个链表的第一个公共结点,三种方法~
- 组合数打表+二维前缀数组优化——组合数问题
- 网页设计与制作学习背景了解
- 学术圈子与科研团队
- list的使用
- 小仙女讲软考(二):全书各章节的联系
- delphi 查看windows后台进程是否运行
- 欢迎使用CSDN-markdown编辑器
- CNN原理及matlab实现
- 动态库调用对话框资源