hdoj5698
果然以前不想搞的东西,今天他妈全来了,我要爆炸,除了说操。。。。真是欲哭无泪啊。。。。。
//这道题目卡在逆元了。。。。
//利用逆元计算1/(n!(m-n)!)
//对于正整数a,m如果有ax≡1(modm),那么把这个同余方程中x的最小正整数解叫做a模m的逆元。
problem1:
//这道题为什么要有乘法逆元呢?
模运算与基本四则运算有些相似,但是除法例外。其规则如下:
若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);
●
若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);
●
若a≡b (% p),c≡d (% p),则 (a + c) ≡ (b + d) (%p),(a - c) ≡ (b - d) (%p),
(a * c) ≡ (b * d) (%p),(a / c) ≡ (b / d) (%p);
problem2:
怎么求逆元:
//逆元一般用【扩展欧几里得】算法来求得,但是这里的m是素数,那么还可以根据【费马小定理】得到逆元为 a^m-2 mod m。
#include<cstdio>
#include<algorithm>
typedef long long LL;
using namespace std;
const int maxn = 1e6+7;
const int mod = 1e9+7;
long long fac[maxn];
long long qpow(long long a,long long b)
{
long long ans=1;
a%=mod;
while(b)
{
if(b%2)
ans=ans*a%mod;
a=a*a%mod;
b/=2;
}
return ans;
}
long long C(long long n,long long m)
{
if(m>n||m<0)return 0;
long long s1=fac[n];
long long s2=fac[n-m]*fac[m]%mod;
// printf("%lld %lld\n",s1,s2);
return s1*qpow(s2,mod-2)%mod;
}
int n,m;
int main()
{
fac[0]=1;
for(int i=1;i<maxn;i++)
fac[i]=fac[i-1]*i%mod;
LL a,b;
while(scanf("%d%d",&n,&m)!=EOF)
printf("%lld\n",C(n+m-4,n-2));
}
hdoj5698的更多相关文章
随机推荐
- stl_内存基本处理工具
内存基本处理工具 STL定义5个全局函数.作用于初始化空间上.各自是:用于构造的construct(),用于析构的destroy(),uninitialized_copy(),uninitialize ...
- 小博客| 登录 | 注册 | 留言 | 提Bug 小博客
浏览(1502) 赞(29) 一直以来都想开发一个自己的网站,总想做一个网站然后让千千万万的人去访问,去使用,然后收到热烈的好评, 再然后某某著名机构有意投资我的网站(其实收购也是没有问题的), ...
- DBExecutor android 数据库框架
https://github.com/eltld/DBExecutor android 数据库框架,sqlite database
- HttpClient 认证
第四章 HTTP认证 HttpClient提供对由HTTP标准规范定义的认证模式的完全支持.HttpClient的认证框架可以扩展支持非标准的认证模式,比如NTLM和SPNEGO. 4.1 用户凭证 ...
- bash shell parameter expansion
1 ${parameter%word}和${parameter%%word} ${parameter%word},word是一个模式,从parameter这个参数的末尾往前开始匹配.单个%进行最短匹配 ...
- 简说 call() 、apply() 、bind()
对于这三个方法,我想一部分人还是比较陌生的. 所以今天来个简单的介绍~ 我们可以将call()和apply()看作是某个对象的方法,通过调用方法的形式来间接调用函数.call()和apply()的第一 ...
- SpringMVC 之 Controller、Service层职责
Controller层 1.接收httpRequest/requestDTO数据 ,检查接收数据参数与格式. 2.传递参数至Service层并接收返回responseDTO数据. 3.包装respon ...
- .Net之路(十四)com组件、OLEDB导入EXCEL
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/chenfanglincfl/article/details/30546777 .NET com组件 ...
- goroutine pool,WaitGroup,chan 示例
服务端高并发编程经常需要写很多goroutine来服务每一个连接,如何正确使用goroutine池是又拍云的工程师们需要考虑的问题,今天这篇文章,分享给同样需要使用go语言的小伙伴们. 文/陶克路 本 ...
- Java面试必会知识点
1.== 和 equals()比较: (1)== 是运算符,equals()是Object中定义的方法: (2)== 比较的是 数值 是否相同,基本类型比较数值,引用类型比较对象地址的数值:且变量类型 ...