NC229274. Beautiful Numbers
描述
输入描述
第一行包含三个整数。
输出描述
输出一个整数。表示答案后的结果。
示例1
输入:
1 3 3
输出:
1
说明:
满足条件的三位数只有1个:111。示例2
输入:
2 3 10
输出:
165
C++ 解法, 执行用时: 20ms, 内存消耗: 16060K, 提交时间: 2022-02-09 16:20:57
#include<bits/stdc++.h> using namespace std; #define ll long long #define N 9000002 #define p 1000000007 ll a,b,n,i,ans,jc[N],inv[N]; ll ksm(ll x,ll k){ if(!k) return 1; ll t=ksm(x,k/2); if(k&1) return t*t%p*x%p; return t*t%p; } bool ck(ll x){ while(x){ if(x%10!=a&&x%10!=b) return false; x/=10; } return true; } int main(){ scanf("%lld%lld%lld",&a,&b,&n); jc[0]=1; for(i=1;i<=n;i++) jc[i]=jc[i-1]*i%p; inv[n]=ksm(jc[n],p-2); for(i=n-1;i>=0;i--) inv[i]=inv[i+1]*(i+1)%p; for(ll i=0;i<=n;i++) if(ck(i*(b-a)+a*n)) ans=(ans+jc[n]*inv[i]%p*inv[n-i]%p)%p; printf("%lld",ans); }