Magic Numbers CodeForces - 628D
Magic Numbers CodeForces - 628D
dp函数中:pos表示当前处理到从前向后的第i位(从1开始编号),remain表示处理到当前位为止共产生了除以m的余数remain。
不一定要把a减一,也可以特判a自身,或者直接改记忆化搜索。
#include<cstdio>
#include<cstring>
#define md 1000000007
typedef long long LL;
LL m,d,ans1,ans2,len1;
LL ans[][][];
LL w[];
char c;
LL dp(LL pos,LL remain,bool pre0,bool limit)
{
if(pos>len1) return remain==&&pre0==;
if(!limit&&ans[pos][remain][pre0]!=-)
return ans[pos][remain][pre0];
LL i,res=,end=limit?w[pos]:;
for(i=;i<=end;i++)
if((pos%==&&i!=d)||(pos%==&&i==d))
res=(res+dp(pos+,(remain*+i)%m,pre0&&i==,limit&&i==w[pos]))%md;
return limit?res:(ans[pos][remain][pre0]=res);
}
int main()
{
LL i;
scanf("%I64d%I64d\n",&m,&d);
memset(ans,-,sizeof(ans));
scanf("%c",&c);
while(c!='\n')
{
w[++len1]=c-'';
scanf("%c",&c);
}
w[len1]--;
for(i=len1;i>=;i--)
{
if(w[i]>=) break;
w[i-]--;
w[i]+=;
}
ans1=dp(,,true,true);
memset(w,,sizeof(w));
len1=;
scanf("%c",&c);
while(c!='\n')
{
w[++len1]=c-'';
scanf("%c",&c);
}
ans2=dp(,,true,true);
printf("%I64d",(ans2-ans1+md)%md);
return ;
}
Magic Numbers CodeForces - 628D的更多相关文章
- Educational Codeforces Round 8 D. Magic Numbers 数位DP
D. Magic Numbers 题目连接: http://www.codeforces.com/contest/628/problem/D Description Consider the deci ...
- Codeforces CF#628 Education 8 D. Magic Numbers
D. Magic Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- Educational Codeforces Round 8 D. Magic Numbers
Magic Numbers 题意:给定长度不超过2000的a,b;问有多少个x(a<=x<=b)使得x的偶数位为d,奇数位不为d;且要是m的倍数,结果mod 1e9+7; 直接数位DP;前 ...
- CodeForces 628 D Magic Numbers 数位DP
Magic Numbers 题意: 题意比较难读:首先对于一个串来说, 如果他是d-串, 那么他的第偶数个字符都是是d,第奇数个字符都不是d. 然后求[L, R]里面的多少个数是d-串,且是m的倍数. ...
- Codeforces Round #189 (Div. 2) A. Magic Numbers【正难则反/给出一个数字串判断是否只由1,14和144组成】
A. Magic Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- URAL 1727. Znaika's Magic Numbers(数学 vector)
主题链接:http://acm.timus.ru/problem.aspx?space=1&num=1727 1727. Znaika's Magic Numbers Time limit: ...
- 【CF628D】Magic Numbers 数位DP
[CF628D]Magic Numbers 题意:求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数(这里的偶数位是的是从高位往低位数的偶数位).$a,b<10^{2 ...
- Dima and Magic Guitar CodeForces - 366E
Dima and Magic Guitar CodeForces - 366E 题意: http://blog.csdn.net/u011026968/article/details/38716425 ...
- Codeforces 628D Magic Numbers
题意: 求在[a,b](a,b不含前导0)中的d−magic数中有多少个是m的倍数. 分析: 计数dp Let's call a number d-magic if digit d appears i ...
随机推荐
- word2vec学习 spark版
参考资料: http://ir.dlut.edu.cn/NewsShow.aspx?ID=291 http://www.douban.com/note/298095260/ http://machin ...
- unity 3D Mesh网络模型,怎样将Constructer拖入场景??
下图中的将Constructer拖入场景,怎么拖入,不知道... 1.Constructer是一个什么东西?在 下图中没有看到这个名字的,于是乎,我就不知道该怎么办了...
- 计算(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]
(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 一.JS运算符的优先级 首先要运用到的第一个 ...
- 在无代码文件的aspx文件中添加类、函数和字段的方法
大家都知道,在开始WebForm程序时,一个WebForm由.cs代码文件与.aspx页面文件组成.在aspx文件中可以嵌入C#代码,但无法在aspx的嵌入C#代码中定义类,函数和字段等.这样,就限制 ...
- POJ3680 Intervals —— 区间k覆盖问题(最小费用流)
题目链接:https://vjudge.net/problem/POJ-3680 Intervals Time Limit: 5000MS Memory Limit: 65536K Total S ...
- 网络编程、三要素、Socket通信、UDP传输、TCP协议、服务端(二十五)
1.网络编程概述 * A:计算机网络 * 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传 ...
- java 连接飞信API
通过java连接飞信api给自己的好友(包括自己)发送飞信内容.如果对方的手机号非你的飞信好友则不能发送.1. [代码]飞信发送类 package per.artisan.fetion; ...
- Silverlight中使用MVVM(4)
Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)—提高 Silverlight中使用MVVM(3)—进阶 Silverlight中使用MVVM(4)—演练 ...
- $.ajax与$.post、$.get的一点区别
后台代码: [HttpPost] public string DoLogin(string username,string password) { return "success" ...
- Codeforces - 702A - Maximum Increase - 简单dp
DP的学习计划,刷 https://codeforces.com/problemset?order=BY_RATING_ASC&tags=dp 遇到了这道题 https://codeforce ...