// Problem: 1588:数字游戏 // Contest: SSOIER // URL: http://ybt.ssoier.cn:8088/problem_show.php?pid=1588 // Memory Limit: 524 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h> usingnamespace std; //#define int long long inlineintread(){int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+ (x<<3)+(ch^48);ch=getchar();}return x*f;} //#define M //#define mo //#define N int n, m, i, j, k; int f[15][2][110]; int a[15], x, y;
intdfs(int n, int p, int s) { if(n==0) return (s%m==0 ? 1 : 0); int i, k=0; if(f[n][p][s]!=-1) return f[n][p][s]; for(i=0; i<=9; ++i) { if(!p && i>a[n]) break; k+=dfs(n-1, p|(i<a[n]), (s+i)%m); } return f[n][p][s]=k; }