- 2022tysc0158 的博客
【题解】P3833 幸运数字
- 2023-11-29 18:14:44 @
P3833 幸运数字
考虑动态规划。
设 为数字和为 且模 余数为 的数的个数。
每轮操作就在原数末尾加上一个数。
易得,状态转移方程为 ( )。
边界为 。
代码如下:
#include<iostream>
#include<cstdio>
#define mod 1000000007
using namespace std;
int y,z,f[50001][501]={1};
int main(){
scanf("%d%d",&y,&z);
for(int i=0;i<y;i++){
for(int j=0;j<z;j++){
if(!f[i][j])continue;
int nx=f[i][j];
for(int k=1;k<=9;k++){
int ni=i+k;
int nj=j*10+k;
if(ni>y)break;
if(nj>=z)nj%=z;
f[ni][nj]+=nx;
if(f[ni][nj]>=mod)f[ni][nj]-=mod;
}
}
}
printf("%d",f[y][0]);
}