题目链接

https://www.luogu.org/problemnew/show/P1313

分析

二项式定理

\((a+b)^n=\sum_{k=0}^{n}{C^k_n a^k b^{n-k} }\)

于是我们要求的即是\(C^k_n \times a^n \times b^m\),于是直接快速幂,然后按公式\(C^k_n=\frac {n!}{(n-k)! \times k!}\),化成\(\prod_{i=k+1}^{i<=n} i \times ((n-k)!)^{-1}\)

代码

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <algorithm>
#include <cctype>
#define ll long long
#define ri register int
using std::min;
using std::max;
template <class T>inline void read(T &x){
x=0;int ne=0;char c;
while(!isdigit(c=getchar()))ne=c=='-';
x=c-48;
while(isdigit(c=getchar()))x=(x<<3)+(x<<1)+c-48;
x=ne?-x:x;return ;
}
const ll p=10007;
int n,m,k,a,b;
inline ll ksm(ll a,ll c){
ll ans=1;
while(c){
if(c&1)ans=ans*a%p;
a=a*a%p;
c=c>>1;
}
return ans;
}
ll fermat(ll a){
return ksm(a,p-2);
}
int main(){
/*ans=a^n*b^m*C(n,k)*/
ll ans=1;
read(a),read(b),read(k),read(n),read(m);
ans=ksm(a,n)*ksm(b,m)%p;
for(ri i=k;i>n;i--)ans=ans*i%p;
ll tmp=1;
for(ri i=k-n;i>=2;i--)tmp=tmp*i%p;
ans=ans*fermat(tmp)%p;
printf("%lld\n",ans);
return 0;
}

最新文章

  1. Visualize real-time data streams with Gnuplot
  2. [windows驱动]windows8.1驱动调试前戏
  3. source insight快捷键及使用技巧
  4. 关于学习Scala语言的一些感悟
  5. Visual C++基础知识(win32exe)
  6. android存储阵列数据SharedPreferences
  7. Android之Http沟通——4.Android HTTP索取信息:HttpClient
  8. leetcode先刷_Merge Two Sorted Lists
  9. Mysql字符集修改为UTF8
  10. WordPress添加个性化的博客宠物的方法
  11. 如何使用分布是缓存Hazelcast
  12. Tea Party CodeForces - 808C (构造+贪心)
  13. HDU1285确定比赛名次
  14. 一个java使用redis的简单案例
  15. Lab 6-2
  16. JAVA WEB 三器之过滤器(Filter)
  17. Beyond Compare 4提示已经过了30天试用期,破解方式,亲测可用
  18. Nginx作为反向代理服务器
  19. Json学习一(基础概念知识学习)
  20. Z_Tree的使用案例(出差地点的演示)

热门文章

  1. About Xi&rsquo;an
  2. docker下搭建owncloud
  3. Android自定义控件之基本图形绘制
  4. 一个BADI中实施多个Implementation
  5. 比特币区块的hash算法
  6. Vuforia笔记1(Vuforia8.0.10与Unity2018.3.6f1)
  7. Mac PyCharm2019激活方法
  8. Awvs–网络漏洞扫描工具
  9. 首款物联网防火墙himqtt开源
  10. 【OpenCV开发】使用OpenCV的OpenCL(ocl)模块