Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll P=1000000007LL;ll n;int k;struct Node{ll cnt;ll num;Node(int _,ll __):cnt(_),num(__){}};int main(){scanf("%lld%d",&n,&k);queue<Node>Q;ll c=0;for (int i=1;i<=min(k,9);i++) Q.push(Node(1,i));while (!Q.empty()){Node cur=Q.front();Q.pop();if (cur.cnt==n){c++;c%=P;continue;}for (int i=0;i<=min(k,9);i++){if ((cur.num%10*i)<=k){Q.push(Node(cur.cnt+1,cur.num*10+i));}}}cout<<c<<endl;return 0;