Codeforces 300C Beautiful Numbers 乘法逆元

来源:互联网 发布:mysql like带_字符 编辑:程序博客网 时间:2024/05/02 05:07

题目链接:http://codeforces.com/contest/300/problem/C

题意:

题意忘了。

总之暴力枚举x

乘法逆元:

在mod==prime时(mod为素数)则存在以下等式

(a / b)%mod  =  a * (b^(mod-2))

#include <iostream>#include <cstdio>using namespace std;#define ll __int64ll a,b,n,f[1000010],Mod=1000000007,res;ll Pow(ll x ,ll p){    ll ans = 1;while(p){if(p&1)ans = (ans*x)%Mod;p>>=1;x = (x*x)%Mod;}return ans;}bool Good(ll x){    while(x!=0){        if( (x%10)!=a && (x%10)!=b ) return 0;        x/=10;    }    return 1;}int main(){    scanf("%I64d %I64d %I64d",&a,&b,&n);    f[0]=1;    for(ll i=1;i<=n;i++)        f[i]=(f[i-1]*i)%Mod;    for(ll i=0;i<=n;i++)    {        ll sum =  ( (a*i)+(b*(n-i)) )%Mod;        if(Good(sum)==1)        {            ll z=(f[n-i]*f[i])%Mod;res= ( res+(f[n]*(Pow(z,Mod-2)%Mod)) ) %Mod;        }    }    printf("%I64d",res%Mod);    return 0;}


1 0
原创粉丝点击