题目链接

脑子有点乱,有的地方写错了,尚大婶鄙视了。。。

来个模版的。

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. using namespace std;
  5. #define LL __int64
  6. LL dp[][];
  7. int num[];
  8. LL dfs(int pos,int pre,int bound)
  9. {
  10. int end,tpre,i;
  11. LL ans = ;
  12. if(pos == -)
  13. return pre == ;
  14. if(!bound&&dp[pos][pre] != -)
  15. return dp[pos][pre];
  16. end = bound ? num[pos] : ;
  17. for(i = ;i <= end;i ++)
  18. {
  19. tpre = (pre + i)%;
  20. ans += dfs(pos-,tpre,bound&&i == end);
  21. }
  22. if(!bound)
  23. dp[pos][pre] = ans;
  24. return ans;
  25. }
  26. LL judge(LL x)
  27. {
  28. int pos = ;
  29. if(x < )
  30. return ;
  31. while(x)
  32. {
  33. num[pos++] = x%;
  34. x = x/;
  35. }
  36. return dfs(pos-,,);
  37. }
  38. int main()
  39. {
  40. int t,cas = ;
  41. LL x,y;
  42. memset(dp,-,sizeof(dp));
  43. scanf("%d",&t);
  44. while(t--)
  45. {
  46. scanf("%I64d%I64d",&x,&y);
  47. printf("Case #%d: ",cas++);
  48. printf("%I64d\n",judge(y)-judge(x-));
  49. }
  50. return ;
  51. }
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <queue>
  5. #include <map>
  6. #include <ctime>
  7. #include <cmath>
  8. #include <algorithm>
  9. using namespace std;
  10. #define LL __int64
  11. LL dp[][];
  12. LL judge(LL x)
  13. {
  14. int num[],n = ,sum,i,j;
  15. LL ans = ;
  16. if(x < )
  17. return ;
  18. else if(x == )
  19. return ;
  20. while(x)
  21. {
  22. num[n ++] = x%;
  23. x /= ;
  24. }
  25. if(n == )
  26. return ;
  27. ans = dp[n-][];
  28. for(i = ;i < num[n-];i ++)
  29. {
  30. ans += dp[n-][-i];
  31. }
  32. sum = num[n-];
  33. for(i = n-;i >= ;i --)
  34. {
  35. if(i == )
  36. {
  37. for(j = ;j <= num[i];j ++)
  38. if((sum + j)% == )
  39. ans ++;
  40. break;
  41. }
  42. for(j = ;j < num[i];j ++)
  43. ans += dp[i][(-sum-j)%];
  44. sum = (sum + num[i])%;
  45. }
  46. return ans;
  47. }
  48. int main()
  49. {
  50. int i,j,k,t,cas = ;
  51. LL x,y;
  52. for(i = ;i < ;i ++)
  53. dp[][i] = ;
  54. for(i = ;i <= ;i ++)
  55. {
  56. for(j = ;j < ;j ++)
  57. {
  58. for(k = ;k < ;k ++)
  59. {
  60. dp[i][(j+k)%] += dp[i-][j];
  61. }
  62. }
  63. }
  64. scanf("%d",&t);
  65. while(t--)
  66. {
  67. scanf("%I64d%I64d",&x,&y);
  68. printf("Case #%d: %I64d\n",cas ++,judge(y)-judge(x-));
  69. }
  70. return ;
  71. }

HDU 4722 Good Numbers(DP)的更多相关文章

  1. 【数位DP】 HDU 4722 Good Numbers

    原题直通车: HDU  4722  Good Numbers 题意: 求区间[a,b]中各位数和mod 10==0的个数. 代码: #include<iostream> #include& ...

  2. HDOJ(HDU).1058 Humble Numbers (DP)

    HDOJ(HDU).1058 Humble Numbers (DP) 点我挑战题目 题意分析 水 代码总览 /* Title:HDOJ.1058 Author:pengwill Date:2017-2 ...

  3. HDU 4722 Good Numbers

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722 Good Numbers Time Limit: 2000/1000 MS (Java/Othe ...

  4. HDU 4722 Good Numbers(位数DP)(2013 ACM/ICPC Asia Regional Online ―― Warmup2)

    Description If we sum up every digit of a number and the result can be exactly divided by 10, we say ...

  5. hdu 4722 Good Numbers( 数位dp入门)

    Good Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  6. HDU - 4722 Good Numbers 【找规律 or 数位dp模板】

    If we sum up every digit of a number and the result can be exactly divided by 10, we say this number ...

  7. hdu 4722 Good Numbers 数位DP

    数位DP!!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #include< ...

  8. HDU 4722:Good Numbers(数位DP)

    类型:数位DP 题意:定义一个Good Number 为 一个数所有位数相加的和%10==0.问[A,B]之间有多少Good Number. 方法: 正常“暴力”的定义状态:(i,d,相关量) 定义d ...

  9. hdu 4722 Good Numbers 规律 数位dp

    #include<iostream> #include<cstring> #include<cstdio> #include<vector> #incl ...

随机推荐

  1. Delphi面向对象的属性

    可以把属性看成是能对类中的数据进行修改和执行代码的特殊的辅助域.对于组件来说,属性就是列在Object Inspector窗口的内容.下面的例子定义了一个有属性的简单对象 TMyObject = cl ...

  2. Ajax 的 GET 和 POST 模式

    Ajax 异步请求数据的方式有两种:GET 和 POST. 如果是 GET 模式,则直接将数据放置到异步请求的 URL 地址中,而 send() 方法不发送任何数据: var queryString ...

  3. html5 web database

    html5 web database <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  4. android 入门-本地化语言

    打包安装到手机上,改变手机系统语言,你在看看是不是改变了.哇.真的可以.

  5. hdu 4762 公式 java

    n/(n)^(m-1) import java.io.*; import java.math.*; import java.util.*; public class Main { static Big ...

  6. 打造理想的Windows 10 APP开发环境的5个步骤

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软即将发布Windows 10手机版,实际上很多人现在已经开始在开发Windows ...

  7. 十天来学习java的心得体会

    有关学习java是几天来的心得体会: 十天学习java遇到很多问题,每个问题都是经过反复的看书本以及上网查找资料来解决的,发现这一点真的需要自己来而不是去遇到什么问题就去依靠他人(师兄.同学).在其中 ...

  8. 《大话》之 策略模式 Vs 状态模式

    一.简介: 策略模式: 背景:商店要打折销售,各种版本的销售方式,让小菜心烦意乱 内容:    定义算法家族,分别封装起来,让他们之间可以户型替换,此模式让算法的变化,不会影响到使用算法的用户. 图文 ...

  9. SQL SERVER数据库的表中修改字段的数据类型后,不能保存

      在数据库里面建了一个表,可是由于对SQL SERVER的建表功能不熟悉,不知道把主键设成什么是好,就先设置了个TEXT类型,可是后来朋友们告诉我说,TEXT类型容易让数据文件变得很大,还 是改成一 ...

  10. 【MySQL 安装过程1】顺利安装MySQL完整过程

    一.MySQL Sever的安装 1.开始安装: 2.这里就要开始注意,端口号我们的my SQL端口号为3306 3.下面要输入用户名和用户密码.注意,帐号密码  都是 root. 4.下面的最后一页 ...