洛谷——P2822 组合数问题
https://www.luogu.org/problem/show?pid=2822
题目描述
组合数C_n^mCnm表示的是从n个物品中选出m个物品的方案数。举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法。根据组合数的定 义,我们可以给出计算组合数的一般公式:
C_n^m=\frac{n!}{m!(n - m)!}Cnm=m!(n−m)!n!
其中n! = 1 × 2 × · · · × n
小葱想知道如果给定n,m和k,对于所有的0 <= i <= n,0 <= j <= min(i,m)有多少对 (i,j)满足C_i^jCij是k的倍数。
输入输出格式
输入格式:
第一行有两个整数t,k,其中t代表该测试点总共有多少组测试数据,k的意义见 【问题描述】。
接下来t行每行两个整数n,m,其中n,m的意义见【问题描述】。
输出格式:
t行,每行一个整数代表答案。
输入输出样例
- 1 2
- 3 3
- 1
- 2 5
- 4 5
- 6 7
- 0
- 7
说明
【样例1说明】
在所有可能的情况中,只有C_2^1 = 2C21=2是2的倍数。
【子任务】
- #include <cstdio>
- inline void read(int &x)
- {
- x=; register char ch=getchar();
- for(; ch>''||ch<''; ) ch=getchar();
- for(; ch>=''&&ch<=''; ch=getchar()) x=x*+ch-'';
- }
- const int N();
- int t,k,fac[N];
- int C[N][N],sum[N][N];
- int Presist()
- {
- read(t),read(k);
- for(int i=; i<=; ++i) C[i][]=C[i][i]=%k;
- for(int i=; i<=; ++i)
- for(int j=; j<i; ++j)
- C[i][j]=(C[i-][j-]%k+C[i-][j]%k)%k;
- for(int i=; i<=; ++i)
- for(int j=; j<=; ++j)
- sum[i][j]=sum[i-][j]+sum[i][j-]-sum[i-][j-]+(!C[i][j]&&i>=j);
- for(int n,m; t--; )
- {
- read(n),read(m);
- printf("%d\n",sum[n][m]);
- }
- return ;
- }
- int Aptal=Presist();
- int main(int argc,char**argv){;}
洛谷——P2822 组合数问题的更多相关文章
- 洛谷P2822 组合数问题(题解)
https://www.luogu.org/problemnew/show/P2822(题目传送) 先了解一下有关组合数的公式:(m在上,n在下) 组合数通项公式:C(n,m)=n!/[m!(n-m) ...
- 洛谷P2822 组合数问题
输入输出样例 输入样例#1: 1 2 3 3 输出样例#1: 1 输入样例#2: 2 5 4 5 6 7 输出样例#2: 0 7 说明 [样例1说明] 在所有可能的情况中,只有C_2^1 = 2C21 ...
- 洛谷P2822组合数问题
传送门啦 15分暴力,但看题解说暴力分有30分. 就是找到公式,然后套公式.. #include <iostream> #include <cstdio> #include & ...
- 洛谷 P2822 组合数问题
题目描述 组合数C_n^mCnm表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的 ...
- 【洛谷P2822 组合数问题】
题目连接 #include<iostream> #include<cstring> #include<cstdio> #include<cctype> ...
- 洛谷P2822 组合数问题 杨辉三角
没想到这道题竟然这么水- 我们发现m,n都非常小,完全可以O(nm)O(nm)O(nm)预处理出stripe数组,即代表(i,j)(i,j)(i,j) 及其向上的一列的个数,然后进行递推即可. #in ...
- 洛谷 P2822 组合数问题 题解
今天又考试了...... 这是T2. Analysis 考试时想了一个判断质因数个数+打表的神奇方法,但没在每次输入n,m时把ans置0,50分滚粗. 看了题解才发现原来是杨辉三角+二维前缀和,果然还 ...
- 【题解】洛谷P2822 [NOIP2016TG ]组合数问题 (二维前缀和+组合数)
洛谷P2822:https://www.luogu.org/problemnew/show/P2822 思路 由于n和m都多达2000 所以暴力肯定是会WA的 因为整个组合数是不会变的 所以我们想到存 ...
- 【洛谷p2822】组合数问题
(突然想 ??忘掉了wdt) (行吧那就%%%hmr) 组合数问题[传送门] (因为清明要出去培训数学知识所以一直在做数论) 组合数<=>杨辉三角形(从wz那拐来的技能 ...
随机推荐
- (OpenExplorer For Eclipse)Eclipse 中打开工程目录的插件(转)
我们想在Eclipse中的打开工程目录,Eclipse 自身没有这个功能,我们可以安装一个插件来实现这个功能.具体的操作方法如下: (1).到以下链接中下载插件:https://github.com/ ...
- 一起写RPC
http://blog.csdn.net/linuu?viewmode=contents
- Libevent学习笔记
学习: /Users/baidu/Documents/Data/Interview/服务器-检索端/libevent参考手册(中文版).pdf 讲的不好.翻译的..
- 【翻译自mos文章】 在错误的从os级别remove掉 trace file 之后,怎么找到该trace file的内容?
在错误的从os级别remove掉 trace file 之后,怎么找到该trace file的内容? 參考原文: How to Find the Content of Trace File Gener ...
- Linux 技巧:让进程在后台可靠执行的几种方法
我们常常会碰到这种问题.用 telnet/ssh 登录了远程的 Linux server,执行了一些耗时较长的任务, 结果却因为网络的不稳定导致任务中途失败.怎样让命令提交后不受本地关闭终端窗体/网络 ...
- Codeforces 425A Sereja and Swaps(暴力枚举)
题目链接:A. Sereja and Swaps 题意:给定一个序列,能够交换k次,问交换完后的子序列最大值的最大值是多少 思路:暴力枚举每一个区间,然后每一个区间[l,r]之内的值先存在优先队列内, ...
- 每一个程序猿都须要了解的一个SQL技巧
对于数据过滤而言CHECK约束已经算是相当不错了.然而它仍存在一些缺陷,比方说它们是应用到表上面的,但有的时候你可能希望指定一条约束,而它仅仅在特定条件下才生效. 使用SQL标准的WITH CHECK ...
- 运行shell命令
首先将shell命令命名为.sh文件 将上面的代码保存为test.sh.并 cd 到对应文件夹: chmod +x ./test.sh #使脚本具有运行权限 ./test.sh #运行脚本 假设报错/ ...
- [jzoj 3175] 数树数 解题报告 (树链剖分)
interlinkage: https://jzoj.net/senior/#main/show/3175 description: 给定一棵N 个节点的树,标号从1~N.每个点有一个权值.要求维护两 ...
- Comparable与Comparator区别(实现和使用)
一.Comparable接口 1.Comparable接口是什么? 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 . ...