【题目链接】

点击打开链接

【算法】

数位DP

f[i][j][k][l]表示i位数,第一位为j,除以13的余数为k,是/否包括子串“13”的方案数

当然,我们也可以先打表,然后,对于每次询问,二分即可

【代码】

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define MAXL 13
  4.  
  5. int i,n;
  6. int a[MAXL],r[MAXL];
  7. int f[MAXL][][][];
  8.  
  9. inline void dp()
  10. {
  11. int i,j,k,x,m;
  12. for (i = ; i <= ; i++) f[][i][i][] = ;
  13. for (i = ; i < MAXL; i++)
  14. {
  15. for (j = ; j <= ; j++)
  16. {
  17. for (k = ; k <= ; k++)
  18. {
  19. m = (r[i-] * j) % ;
  20. for (x = ; x <= ; x++)
  21. {
  22. if (j == && x == ) continue;
  23. f[i][j][k][] += f[i-][x][(k-m+)%][];
  24. }
  25. for (x = ; x <= ; x++)
  26. {
  27. f[i][j][k][] += f[i-][x][(k-m+)%][];
  28. }
  29. if (j == ) f[i][j][k][] += f[i-][][(k-m+)%][];
  30. }
  31. }
  32. }
  33. }
  34. inline int calc(int n)
  35. {
  36. int i,j,len = ,ans = ,m = ,flag = false;
  37. memset(a,,sizeof(a));
  38. while (n)
  39. {
  40. a[++len] = n % ;
  41. n /= ;
  42. }
  43. for (i = len; i >= ; i--)
  44. {
  45. if (flag)
  46. {
  47. for (j = ; j < a[i]; j++)
  48. {
  49. ans = ans + f[i][j][(-m)%][] + f[i][j][(-m)%][];
  50. }
  51. } else
  52. {
  53. for (j = ; j < a[i]; j++)
  54. {
  55. ans += f[i][j][(-m)%][];
  56. }
  57. if (a[i+] == && a[i] > ) ans += f[i][][(-m)%][];
  58. }
  59. m = (m + a[i] * r[i-]) % ;
  60. if (a[i] == && a[i+] == ) flag = true;
  61. }
  62. return ans;
  63. }
  64.  
  65. int main()
  66. {
  67.  
  68. r[] = ;
  69. for (i = ; i < MAXL; i++) r[i] = (r[i-] * ) % ;
  70. dp();
  71. while (scanf("%d",&n) != EOF) printf("%d\n",calc(n+));
  72.  
  73. return ;
  74. }

【HDU 3652】 B-numbers的更多相关文章

  1. 【HDU 3652】 B-number (数位DP)

    B-number Problem Description A wqb-number, or B-number for short, is a non-negative integer whose de ...

  2. 【HDU 4722】 Good Numbers

    [题目链接] 点击打开链接 [算法] f[i][j]表示第i位,数位和对10取模余j的数的个数 状态转移,计算答案都比较简单,笔者不再赘述 [代码] #include<bits/stdc++.h ...

  3. 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题

    [HDU  3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...

  4. 【HDU 5647】DZY Loves Connecting(树DP)

    pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...

  5. -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】

    [把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...

  6. 【HDOJ 3652】B-number

    [HDOJ 3652]B-number 给一整数n 找<=n的整数中能被13整除且含有13的 数位dp 记忆化! . 一入记忆化深似海. ..再也不想用递推了...发现真的非常好想 仅仅要保证满 ...

  7. 【HDU 2196】 Computer(树的直径)

    [HDU 2196] Computer(树的直径) 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 这题可以用树形DP解决,自然也可以用最直观的方法解 ...

  8. 【HDU 2196】 Computer (树形DP)

    [HDU 2196] Computer 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 刘汝佳<算法竞赛入门经典>P282页留下了这个问题 ...

  9. 【HDU 5145】 NPY and girls(组合+莫队)

    pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...

随机推荐

  1. l5-repository基本使用

    一.安装 composer require prettus/l5-repository 二.Model层:Warehouse.php <?php namespace App\Model; use ...

  2. 商业研究(21):活力蛙,足疗O2O,曾经的“中国上门足疗领先品牌”

    友情提示:商业研究系列文章,只探讨项目和相关项目的商业本身,不针对任何人和任何组织!!! 2015年,在京东-东家 股权众筹平台,参与投资了足疗O2O项目,活力蛙.     后来由于,股市大跌和资本寒 ...

  3. Unity Water Shader

    上图是一个物体浸入水中的效果 原理 我们使用相机渲染的整个场景的深度图减去需要忽略的模型的深度,这里忽略的是图中蓝色部分,就保留了其他的深度值. 用到Main Camera渲染的深度贴图: sampl ...

  4. [K/3Cloud] 理解BOS关于Enabled属性的表决器原理

    通常的编程中,我们习惯: btnOK.Enabled = true; 这个样子就会将按钮变成有效,反之亦然.但在ERP的表单中,其某个按钮或字段其有效性及其复杂,例如一个表格中某个数量单元格其有效性是 ...

  5. 【IntelliJ】IntelliJ IDEA常用设置及快捷键以及自定义Live templates

    IntelliJ IDEA是一款非常优秀的JAVA编辑器,初学都可会对其中的一些做法感到很别扭,刚开始用的时候我也感到很不习惯,在参考了网上一些文章后在这里把我的一些经验写出来,希望初学者能快速适应它 ...

  6. vimtips阅读记录

    __BEGIN__ *vimtips.txt* For Vim version 8.0. ------------------------------------------------------- ...

  7. Linux下汇编语言学习笔记30 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  8. 使用XML定义组件样式

    <TextView android:layout_width="match_parent" android:layout_height="wrap_content& ...

  9. 洛谷 P4057 [Code+#1]晨跑

    P4057 [Code+#1]晨跑 题目描述 “无体育,不清华”.“每天锻炼一小时,健康工作五十年,幸福生活一辈子” 在清华,体育运动绝对是同学们生活中不可或缺的一部分.为了响应学校的号召,模范好学生 ...

  10. 1.spring boot要求最低jdk1.8,平安默认1.6问题,-》安装JDK1.8 2.maven 3.3.3要求最低jdk1.7->安装jdk 1.8

    1.spring boot要求最低jdk1.8,平安默认1.6问题,->安装JDK1.82.maven 3.3.3要求最低jdk1.7->安装jdk 1.8