比赛 |
练习12 |
评测结果 |
AAAAAAAAAA |
题目名称 |
计算系数 |
最终得分 |
100 |
用户昵称 |
NVIDIA |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2017-06-30 13:29:18 |
显示代码纯文本
/*汪大佬的0s写法,附自己的辣鸡写法*/
#include<cstdio>
const int MOD=10007;
using namespace std;
int c[1005];
inline int pow(int n,int p)
{
long long base=(long long)n;
int ans=1;
while(p){if(p&1) ans=ans*base%MOD;base=base*base%MOD;p>>=1;}
return ans;
}
inline int cc()
{
freopen("factor.in","r",stdin);
freopen("factor.out","w",stdout);
int a,b,k,n,m,x,y,z;
scanf("%d%d%d%d%d",&a,&b,&k,&n,&m);
x=pow(a,n);y=pow(b,m);c[0]=1;
for(int i=1;i<=k;i++)c[i]=((c[i-1]*(k-i+1)%MOD)*pow(i,MOD-2))%MOD;
printf("%d\n",((x*y)%MOD*c[n])%MOD);
return 0;
}
int ccc=cc();
int main(){;}
/*#include<iostream>
#include<cstdio>
using namespace std;
typedef long long KA;
const int maxn=10007,maxm=1000+10;
KA a,b,k,n,m,sum,f[maxm][maxm];;
char buf[1<<15],*fs,*ft;
inline int q()
{
int x,f=1;char ch;
while(ch=getchar(),!isdigit(ch))if(ch=='-')f=-1;x=ch-48;
while(ch=getchar(),isdigit(ch))x=x*10+ch-48;return x*f;
}
inline int DO()
{
freopen("factor.in","r",stdin);
freopen("factor.out","w",stdout);
a=q();b=q();k=q();n=q();m=q();
f[1][1]=1;f[1][2]=1;
for(int i=2;i<=k;i++)for(int j=1;j<=i+1;j++){f[i][j]=f[i-1][j]+f[i-1][j-1];f[i][j]%=10007;}
for(int i=1;i<=n;i++){f[k][n+1]*=a;f[k][n+1]%=10007;}
for(int i=1;i<=m;i++){f[k][n+1]*=b;f[k][n+1]%=10007;}
printf("%lld",f[k][n+1]);
}
int aaa=DO();
int main(){;}
*/