热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LightOJ1068(数位DP)

发现数位DP其实并不难调。。只要有数据的话。。。(当然考场需要对拍。。这个要维护2个余数,然后就是按照数位该有的模式转移即可,不过k的范

发现数位DP其实并不难调。。只要有数据的话。。。(当然考场需要对拍。。

这个要维护2个余数,然后就是按照数位该有的模式转移即可,不过k的范围非常大,貌似会爆内存。。以前做数位dp其实根本就没想到会到内存不够用的地步丫。。仔细想想会发现,数位和最多也才82(1999999999的情况),所以k>82直接输出0就可以了,然后这样内存还是非常充裕的。。



#include
#include
#include
#include
#include
#include
#define inc(i,l,r) for(int i&#61;l;i<&#61;r;i&#43;&#43;)
#define dec(i,l,r) for(int i&#61;l;i>&#61;r;i--)
#define link(x) for(edge *j&#61;h[x];j;j&#61;j->next)
#define eps 1e-8
#define inf 1e9
#define mem(a) memset(a,0,sizeof(a))
#define ll long long
#define succ(x) (1<#define lowbit(x) (x&(-x))
#define sqr(x) ((x)*(x))
#define ls T[i<<1]
#define rs T[i<<1|1]
#define op T[i]
#define mid (x&#43;y>>1)
#define NM 83
#define nm 100498
#define pi 3.141592653
using namespace std;
ll read(){ll x&#61;0,f&#61;1;char ch&#61;getchar();while(!isdigit(ch)){if(ch&#61;&#61;&#39;-&#39;)f&#61;-1;ch&#61;getchar();}while(isdigit(ch))x&#61;x*10&#43;ch-&#39;0&#39;,ch&#61;getchar();return f*x;
}int _x,_y,k,n,b[NM],d[11][NM][NM];
bool V[11][NM][NM];
int dfs(int i,bool f,int t,int v){if(!i)return !t&&!v;if(!f&&V[i][t][v])return d[i][t][v];int m&#61;f?b[i]:9,ans&#61;0;inc(j,0,m)ans&#43;&#61;dfs(i-1,f&&j&#61;&#61;m,(t*10&#43;j)%k,(v&#43;j)%k);if(!f)d[i][t][v]&#61;ans,V[i][t][v]&#43;&#43;;return ans;
}int solve(int x){n&#61;0;for(int t&#61;x;t;t/&#61;10)b[&#43;&#43;n]&#61;t%10;return dfs(n,1,0,0);
}int main(){int _&#61;read();inc(T,1,_){_x&#61;read();_y&#61;read();k&#61;read();if(k>82){printf("Case %d: 0\n",T);continue;}mem(V);mem(d);printf("Case %d: %d\n",T,solve(_y)-solve(_x-1));}return 0;
}






Investigation

Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu

[Submit]   [Go Back]   [Status]  


Description

An integer is divisible by 3 if the sum of its digits is also divisible by 3. For example, 3702 is divisible by 3 and 12 (3&#43;7&#43;0&#43;2) is also divisible by 3. This property also holds for the integer 9.

In this problem, we will investigate this property for other integers.



Input

Input starts with an integer T (≤ 200), denoting the number of test cases.

Each case contains three positive integers A, B and K (1 ≤ A ≤ B <231 and 0 .



Output

For each case, output the case number and the number of integers in the range [A, B] which are divisible by K and the sum of its digits is also divisible byK.



Sample Input

3

1 20 1

1 20 2

1 1000 4



Sample Output

Case 1: 20

Case 2: 5

Case 3: 64


Source


Problem Setter: Sohel Hafiz
Special Thanks: Jane Alam Jan (Solution, Dataset)




推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 本文介绍了SPOJ2829题目的解法及优化方法。题目要求找出满足一定条件的数列,并对结果取模。文章详细解释了解题思路和算法实现,并提出了使用FMT优化的方法。最后,对于第三个限制条件,作者给出了处理方法。文章最后给出了代码实现。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
author-avatar
mobiledu2502926273
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有