【HDU 3652】 B-numbers
【题目链接】
【算法】
数位DP
f[i][j][k][l]表示i位数,第一位为j,除以13的余数为k,是/否包括子串“13”的方案数
当然,我们也可以先打表,然后,对于每次询问,二分即可
【代码】
- #include<bits/stdc++.h>
- using namespace std;
- #define MAXL 13
- int i,n;
- int a[MAXL],r[MAXL];
- int f[MAXL][][][];
- inline void dp()
- {
- int i,j,k,x,m;
- for (i = ; i <= ; i++) f[][i][i][] = ;
- for (i = ; i < MAXL; i++)
- {
- for (j = ; j <= ; j++)
- {
- for (k = ; k <= ; k++)
- {
- m = (r[i-] * j) % ;
- for (x = ; x <= ; x++)
- {
- if (j == && x == ) continue;
- f[i][j][k][] += f[i-][x][(k-m+)%][];
- }
- for (x = ; x <= ; x++)
- {
- f[i][j][k][] += f[i-][x][(k-m+)%][];
- }
- if (j == ) f[i][j][k][] += f[i-][][(k-m+)%][];
- }
- }
- }
- }
- inline int calc(int n)
- {
- int i,j,len = ,ans = ,m = ,flag = false;
- memset(a,,sizeof(a));
- while (n)
- {
- a[++len] = n % ;
- n /= ;
- }
- for (i = len; i >= ; i--)
- {
- if (flag)
- {
- for (j = ; j < a[i]; j++)
- {
- ans = ans + f[i][j][(-m)%][] + f[i][j][(-m)%][];
- }
- } else
- {
- for (j = ; j < a[i]; j++)
- {
- ans += f[i][j][(-m)%][];
- }
- if (a[i+] == && a[i] > ) ans += f[i][][(-m)%][];
- }
- m = (m + a[i] * r[i-]) % ;
- if (a[i] == && a[i+] == ) flag = true;
- }
- return ans;
- }
- int main()
- {
- r[] = ;
- for (i = ; i < MAXL; i++) r[i] = (r[i-] * ) % ;
- dp();
- while (scanf("%d",&n) != EOF) printf("%d\n",calc(n+));
- return ;
- }
【HDU 3652】 B-numbers的更多相关文章
- 【HDU 3652】 B-number (数位DP)
B-number Problem Description A wqb-number, or B-number for short, is a non-negative integer whose de ...
- 【HDU 4722】 Good Numbers
[题目链接] 点击打开链接 [算法] f[i][j]表示第i位,数位和对10取模余j的数的个数 状态转移,计算答案都比较简单,笔者不再赘述 [代码] #include<bits/stdc++.h ...
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- 【HDU 5647】DZY Loves Connecting(树DP)
pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...
- -【线性基】【BZOJ 2460】【BZOJ 2115】【HDU 3949】
[把三道我做过的线性基题目放在一起总结一下,代码都挺简单,主要就是贪心思想和异或的高斯消元] [然后把网上的讲解归纳一下] 1.线性基: 若干数的线性基是一组数a1,a2,a3...an,其中ax的最 ...
- 【HDOJ 3652】B-number
[HDOJ 3652]B-number 给一整数n 找<=n的整数中能被13整除且含有13的 数位dp 记忆化! . 一入记忆化深似海. ..再也不想用递推了...发现真的非常好想 仅仅要保证满 ...
- 【HDU 2196】 Computer(树的直径)
[HDU 2196] Computer(树的直径) 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 这题可以用树形DP解决,自然也可以用最直观的方法解 ...
- 【HDU 2196】 Computer (树形DP)
[HDU 2196] Computer 题链http://acm.hdu.edu.cn/showproblem.php?pid=2196 刘汝佳<算法竞赛入门经典>P282页留下了这个问题 ...
- 【HDU 5145】 NPY and girls(组合+莫队)
pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...
随机推荐
- l5-repository基本使用
一.安装 composer require prettus/l5-repository 二.Model层:Warehouse.php <?php namespace App\Model; use ...
- 商业研究(21):活力蛙,足疗O2O,曾经的“中国上门足疗领先品牌”
友情提示:商业研究系列文章,只探讨项目和相关项目的商业本身,不针对任何人和任何组织!!! 2015年,在京东-东家 股权众筹平台,参与投资了足疗O2O项目,活力蛙. 后来由于,股市大跌和资本寒 ...
- Unity Water Shader
上图是一个物体浸入水中的效果 原理 我们使用相机渲染的整个场景的深度图减去需要忽略的模型的深度,这里忽略的是图中蓝色部分,就保留了其他的深度值. 用到Main Camera渲染的深度贴图: sampl ...
- [K/3Cloud] 理解BOS关于Enabled属性的表决器原理
通常的编程中,我们习惯: btnOK.Enabled = true; 这个样子就会将按钮变成有效,反之亦然.但在ERP的表单中,其某个按钮或字段其有效性及其复杂,例如一个表格中某个数量单元格其有效性是 ...
- 【IntelliJ】IntelliJ IDEA常用设置及快捷键以及自定义Live templates
IntelliJ IDEA是一款非常优秀的JAVA编辑器,初学都可会对其中的一些做法感到很别扭,刚开始用的时候我也感到很不习惯,在参考了网上一些文章后在这里把我的一些经验写出来,希望初学者能快速适应它 ...
- vimtips阅读记录
__BEGIN__ *vimtips.txt* For Vim version 8.0. ------------------------------------------------------- ...
- Linux下汇编语言学习笔记30 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- 使用XML定义组件样式
<TextView android:layout_width="match_parent" android:layout_height="wrap_content& ...
- 洛谷 P4057 [Code+#1]晨跑
P4057 [Code+#1]晨跑 题目描述 “无体育,不清华”.“每天锻炼一小时,健康工作五十年,幸福生活一辈子” 在清华,体育运动绝对是同学们生活中不可或缺的一部分.为了响应学校的号召,模范好学生 ...
- 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