Codeforces 628D Magic Numbers
来源:互联网 发布:python源代码分享 编辑:程序博客网 时间:2024/04/29 14:04
题意:
求在
分析:
Let’s call a number d-magic if digit d appears in decimal presentation of the number on even positions and nowhere else.
仔细读题并观察例子就可以明确
求
设
代码:
#include<cstdio>#include<cstring>const int mod = 1e9+7, maxn = 2005;int m, d;int dp[maxn][maxn][2];char a[maxn], b[maxn];int num[maxn];int solve(char* A){ memset(dp, 0, sizeof(dp)); memset(num, 0, sizeof(num)); int cnt = strlen(A); for(int i = 0; i < cnt; i++){ num[i+1] = A[i] - '0'; } for(int i = 1; i<=num[1];i++){ if(i == d)continue; if(i < num[1]){ dp[1][i%m][0]++; }else{ dp[1][i%m][1]++; } } for(int i = 2; i <= cnt; i++){ for(int j = 0; j < m; j++){ if(i%2==0){ dp[i][(j * 10 + d)%m][0] = (dp[i][(j * 10 + d)%m][0] + dp[i - 1][j][0])%mod; if(d < num[i]) dp[i][(j * 10 + d)%m][0] = ( dp[i][(j * 10 + d)%m][0] + dp[i - 1][j][1])%mod; else if(d == num[i]) dp[i][(j * 10 + d)%m][1] = ( dp[i][(j * 10 + d)%m][1] + dp[i-1][j][1])%mod; }else{ for(int k = 0; k < 10; k++){ if(k == d) continue; dp[i][(j * 10 + k)%m][0] = (dp[i][(j * 10 + k)%m][0] + dp[i - 1][j][0])%mod; if(k < num[i]) dp[i][(j * 10 + k)%m][0] = ( dp[i][(j * 10 + k)%m][0] + dp[i - 1][j][1])%mod; else if(k == num[i]) dp[i][(j * 10 + k)%m][1] = ( dp[i][(j * 10 + k)%m][1] + dp[i-1][j][1])%mod; } } } } return (dp[cnt][0][0] + dp[cnt][0][1])%mod;}int is(char* a){ int res = 0; for(int i = 0; i < strlen(a); i++){ int a1 = a[i] - '0'; if(i%2 == 0){ if(a1 == d) return 0; } if(i%2==1){ if(a1 != d) return 0; } res = (res*10 +a1)%m; } return res == 0;}int main (void){ scanf("%d%d",&m,&d); scanf("%s%s", a, b); printf("%d\n", (solve(b) - solve(a) +is(a)+mod)%mod) ; return 0;}
0 0
- codeforces 628D Magic Numbers
- Codeforces 628D Magic Numbers
- Codeforces 628D Magic Numbers 【数位dp】
- Codeforces 628D. Magic Numbers 数位DP
- Magic Numbers codeforces 628D 数位dp
- Codeforces 628D Magic Numbers 数位DP
- CodeForces 628D Magic Numbers(数位DP)
- Educational Codeforces Round 8 D. Magic Numbers(数位dp)
- Codeforces edu 8 D. Magic Numbers 数位dp
- Educational Codeforces Round 8 D - Magic Numbers 数位DP
- Educational Codeforces Round 8 D. Magic Numbers (数位DP)
- CodeForce 628D Magic Numbers( 数位DP )
- Magic Numbers CodeForces
- codeforces 320A. Magic Numbers
- codeforces-320A-Magic Numbers
- CodeForces--320A--Magic numbers
- codeforces 320A Magic Numbers
- Educational Codeforces Round 8(D. Magic Numbers(数位DP))
- IOS疯狂基础之MessageUI—短信
- Twitter-Snowflake,64位自增ID算法详解
- mybatis中语句块报错, ORA-00918: 未明确定义列
- 分享一套我现在在使用Autohotkey的脚本
- 搜索框自动补全
- Codeforces 628D Magic Numbers
- 天声人語 20160222 ボッティチェリの青と赤
- sublime插件安装插件问题以及高亮显示
- java获取日期是星期几
- .C 与 .h文件
- PHP配置文件中session.save_path负责session文件的存放位置
- java核心技术卷I-第三章学习笔记
- 日经春秋 20160222
- 整个手机界就是一部天龙八部