[NOIP2016]组合数问题
来源:互联网 发布:广告公司作图软件 编辑:程序博客网 时间:2024/06/06 04:03
题目描述:
题目链接: UOJ 263 http://uoj.ac/problem/263
题目背景: NOIP2016 提高组 Day2 T1
组合数 表示的是从 n 个物品中选出 m 个物品的方案数。举个例子,从 (1,2,3) 三个物品中选择两个物品可以有 (1,2),(1,3),(2,3) 这三种选择方法。根据组合数的定义,我们可以给出计算组合数 的一般公式:其中
小葱想知道如果给定 n,m 和 k,对于所有的 0≤i≤n,0≤j≤min(i,m) 有多少对 (i,j) 满足是 k 的倍数。
输入格式:
第一行有两个整数 t,k,其中 t 代表该测试点总共有多少组测试数据,k 的意义见【问题描述】。
接下来 t 行每行两个整数 n,m,其中 n,m 的意义见【问题描述】。
输出格式:
输出 t 行,每行一个整数代表所有的 0≤i≤n,0≤j≤min(i,m) 中有多少对 (i,j) 满足是 k 的倍数。
样例输入1:
1 2
3 3
样例输出1:
1
样例输入2:
2 5
4 5
6 7
样例输出2:
0
7
备注:
样例1说明:在所有可能的情况中,只有 是 2 的倍数。
数据规模与约定:
题目分析:
由组合数与杨辉三角的对应关系可知递推公式。令
附代码:
#include<iostream>#include<cstring>#include<string>#include<cstdlib>#include<cstdio>#include<ctime>#include<queue>#include<set>#include<map>#include<iomanip>#include<cmath>#include<cctype>#include<algorithm>using namespace std;const int maxn=2010;const int N=1e4+10;int t,k,maxx,maxy,f[maxn][maxn],ans[maxn][maxn],n[N],m[N],sum;void pre(){ f[0][0]=1; for(int i=1;i<=maxx;i++) for(int j=0;j<=i;j++) { f[i][j]=(f[i-1][j-1]+f[i-1][j])%k; if(f[i][j]==0) ans[i][j]++; ans[i][j]+=ans[i][j-1]; }}int main(){ //freopen("lx.in","r",stdin); scanf("%d%d",&t,&k); for(int i=1;i<=t;i++) { scanf("%d%d",&n[i],&m[i]); if(n[i]>maxx) maxx=n[i]; if(m[i]>maxy) maxy=m[i]; } pre(); for(int i=1;i<=t;i++) { sum=0; for(int j=0;j<=n[i];j++) { int v=min(j,m[i]); sum+=ans[j][v]; } printf("%d\n",sum); } return 0;}
- [NOIP2016] 组合数问题
- NOIP2016组合数问题
- noip2016组合数问题
- NOIP2016组合数问题
- [NOIP2016]组合数问题
- 组合数问题(NOIP2016)
- NOIP2016 组合数问题
- Noip2016 组合数问题
- noip2016组合数问题
- NOIP2016 Day2T1 组合数问题
- NOIP2016 day2T1 组合数问题
- NOIP2016 T4 组合数问题
- [noip2016]组合数问题 题解
- noip2016组合数问题 组合+前缀和
- 【NOIP2016】洛谷2282 组合数问题
- 【NOIP2016】D2 T1 组合数问题
- Loi Online Judge【NOIP2016】组合数问题
- [NOIP2016提高组]D2T1:组合数问题
- Linux用户抢占和内核抢占详解(概念, 实现和触发时机)--Linux进程的管理与调度
- Makefile详解(六)
- 如何在Python2.7版本中安装pip程序
- (转载)机器学习数据集(Dataset)汇总
- Unreal Engine 4学习笔记:改变天空颜色
- [NOIP2016]组合数问题
- 使用JS判断客户端、浏览器、操作系统类型
- python中文截断
- Aspose.Cells.dll操作exel
- MindManager职场攻略“赶走瞌睡虫”!
- 安装fabric运行环境的时候Vagrant up遇到的问题,解决路径
- Linux_使用java给文件添加权限
- Cef经典N大问题
- ActivityInfo的获取