组合数取模(comb)

【问题描述】

计算C(m,n)mod 9901的值

【输入格式】

从文件comb.in中输入数据。

输入的第一行包含两个整数,m和n

【输出格式】

输出到文件comb.out中。

输出一行,一个整数

【样例输入】

2 1

【样例输出】

2

【数据规模与约定】

对于 20%的数据,n<=m<=20

对于 40%的数据,n<=m<=2000

对于 100%的数据,n<=m<=20000

这道题描述很清楚,有很多种做法,第一题还是挺水的,而且很多网站上也有

自己比较懒,因为摸的数很小,写了一个半打表半lucas。

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int C[][];
int main()
{
int i,j;
int n,m;
cin>>n>>m;
for(i=;i<=;i++)
{
C[i][i]=;
C[i][]=;
C[i][]=;
}
for(i=;i<=;i++)
{
for(j=;j<=i;j++)
{
C[i][j]=((C[i-][j-])%+(C[i-][j])%)%;
}
}
int ans=;
ans=(C[n/][m/]*C[n%][m%])%;
cout<<ans;
}

还有一种是直接lucas..

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long LL;
LL n,m,p;
LL quick_mod(LL a, LL b)
{
LL ans=;
a%=p;
while(b)
{
if(b&)
{
ans=ans*a%p;
b--;
}
b>>=;
a=a*a%p;
}
return ans;
}
LL C(LL n, LL m)
{
if(m>n)
return ;
LL ans=;
for(int i=; i<=m; i++)
{
LL a=(n+i-m)%p;
LL b=i%p;
ans=ans*(a*quick_mod(b,p-)%p)%p;
}
return ans;
}
LL Lucas(LL n, LL m)
{
if(m == )
return ;
return C(n%p,m%p)*Lucas(n/p,m/p)%p;
}
int main()
{
scanf("%lld%lld", &n, &m);
p=;
printf("%lld\n", Lucas(n,m));
return ;
}

还有一种是直接打表..这里发一下我旁边dalao写的程序

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
int C[20039]={0};
int main()
{
C[0]=1;
int m,n,a=1,b,stp,STP,MOD=9901;
scanf("%d%d",&m,&n);
while(a<=m)
{
stp=C[0];
for(b=1;b<=a;b++)
{
STP=C[b];
C[b]=stp+C[b];
C[b]%=MOD;
stp=STP;
}
a++;
}
printf("%d",C[n]);
}

东北育才 DAY2组合数取mod (comb)的更多相关文章

  1. 组合数取mod

    组合数取mod 条件mod是质数,inv 是逆元,fac是阶层: 用于n在10^5左右 maxn=100505: ll fact[maxn],inv[maxn]; ll Pow(ll x,ll n){ ...

  2. Uva12034 (组合数取模)

    题意:两匹马比赛有三种比赛结果,n匹马比赛的所有可能结果总数 解法: 设答案是f[n],则假设第一名有i个人,有C(n,i)种可能,接下来还有f(n-i)种可能性,因此答案为 ΣC(n,i)f(n-i ...

  3. 组合数取模Lucas定理及快速幂取模

    组合数取模就是求的值,根据,和的取值范围不同,采取的方法也不一样. 下面,我们来看常见的两种取值情况(m.n在64位整数型范围内) (1)  , 此时较简单,在O(n2)可承受的情况下组合数的计算可以 ...

  4. 排列组合+组合数取模 HDU 5894

    // 排列组合+组合数取模 HDU 5894 // 题意:n个座位不同,m个人去坐(人是一样的),每个人之间至少相隔k个座位问方案数 // 思路: // 定好m个人 相邻人之间k个座位 剩下就剩n-( ...

  5. hdu 3944 DP? 组合数取模(Lucas定理+预处理+帕斯卡公式优化)

    DP? Problem Description Figure 1 shows the Yang Hui Triangle. We number the row from top to bottom 0 ...

  6. [BZOJ 3129] [Sdoi2013] 方程 【容斥+组合数取模+中国剩余定理】

    题目链接:BZOJ - 3129 题目分析 使用隔板法的思想,如果没有任何限制条件,那么方案数就是 C(m - 1, n - 1). 如果有一个限制条件是 xi >= Ai ,那么我们就可以将 ...

  7. lucas定理解决大组合数取模

    LL MyPow(LL a, LL b) { LL ret = ; while (b) { ) ret = ret * a % MOD; a = a * a % MOD; b >>= ; ...

  8. 2015 ICL, Finals, Div. 1 Ceizenpok’s formula(组合数取模,扩展lucas定理)

    J. Ceizenpok’s formula time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  9. BZOJ_2142_礼物_扩展lucas+组合数取模+CRT

    BZOJ_2142_礼物_扩展lucas+组合数取模 Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同 ...

随机推荐

  1. 用 Python 编写网络爬虫 笔记

    Chapter I 简介 为什么要写爬虫? 每个网站都应该提供 API,然而这是不可能的 即使提供了 API,往往也会限速,不如自己找接口 注意已知条件(robots.txt 和 sitemap.xm ...

  2. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  3. 如何设置SecureCRT快捷键

    第一步,打开Tools -> Keymap Editor: 2.用鼠标点击要设置的快捷键,这里以F3为例,然后选择Map Select Key 3.弹出的对话框中,Function一栏选择Run ...

  4. bitnami gitlab 配置域名

    正常安装完成以后gitlab的代码仓库域名的地址依然是IP,这样不便于我们记忆,所以我想给gitlab增加一个域名 找到gitlab.yml 配置文件,在gitlab 节点下的host 由IP变更为域 ...

  5. Jenkins 远程构建任务

    开发过程中提交代码以后,如何不登录Jenkins就自动触发jenkins 任务来发布软件版本. 1.首先我们创建一个Jenkins任务. 2.选择"构建触发器"->勾选&qu ...

  6. .net实现多重继承问题(virtual)

    C#中是没有类的多重继承这个概念.要使用多重继承必须要通过接口Interface来完成, 一.接口类 interface  getTable{      DataTable Getdatatable( ...

  7. Adobe After Effect CC2017 for Mac

    前段时间学习使用 Lottie 制作炫酷的动画,需要 Adobe After Effect 安装 bodymovin 插件,然后导出动画的 json 文件.尝试安装 AE 工具.网上查找 史蒂芬周的博 ...

  8. Oracle listener服务启动后又停止的解决方案

    这是Oracle监听服务.忘了说我的版本是Oracle10g. 我装完Oracle数据库之后,然后用第三方工具plsql去连接,提示no listener,首先我反复检查tnsnames.ora配置文 ...

  9. 关于微信小程序拒绝授权后,重新授权并获取用户信息

    最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口: 看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录: 当调用 ...

  10. Thinkphp5使用阿里大于短信验证

    现在各种平台登录验证很多时候会使用短信验证,快捷安全,有很多平台提供短信验证服务,相比较而言阿里大于价格比较便宜,快捷,所以在在千锋日常的php教学中多以此为例来说明短信验证的使用.下面我们在tp5中 ...