【HDU 3652】 B-number (数位DP)
B-number
Problem DescriptionA wqb-number, or B-number for short, is a non-negative integer whose decimal form contains the sub- string "13" and can be divided by 13. For example, 130 and 2613 are wqb-numbers, but 143 and 2639 are not. Your task is to calculate how many wqb-numbers from 1 to n for a given integer n.InputProcess till EOF. In each line, there is one positive integer n(1 <= n <= 1000000000).OutputPrint each answer in a single line.Sample Input13
100
200
1000Sample Output1
1
2
2Authorwqb0039Source
f[i][j][k]表示填i个数,模13余数为j,状态为k的方案数。
k=0表示没有‘13’且末位不为1,k=1表示没有‘13’但末位为1,k=3为含有‘13’。
这是数位DP模版题啊。。感觉我真的从难往简单做了,第一题搞的我,这酸爽!!
我还是too naive啊,一开始弄k表示状态想得超复杂,觉得要记录含不含k以及上一位是什么,其实很多状态是没用的嘛,只要知道上一位是不是1就好了,我是如此搞笑!
代码如下:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
#define LL long long int f[][][],a[];
int c; LL ffind(int n,int k,int tt,bool flag)
{
if(n==) return (tt==&&k==);
if(!flag&&f[n][k][tt]!=-) return f[n][k][tt];
LL ans=;
int ed=flag?a[n]:;
for(int i=;i<=ed;i++)
{
int nt=;
if(i==) nt=;
if(tt==&&i==) nt=;
if(tt==) nt=;
ans+=ffind(n-,(k*+i)%,nt,(flag&&(i==ed)));
}
if(!flag) f[n][k][tt]=ans;
return ans;
} LL get_ans(int n)
{
int x=n;
c=;
while(x) a[++c]=x%,x/=;
return ffind(c,,,);
} int main()
{
memset(f,-,sizeof(f));
int n;
while(scanf("%d",&n)!=EOF)
{
LL ans=get_ans(n);
printf("%lld\n",ans);
}
return ;
}
[HDU 3652]
记得100年前,没做过几道数位DP的我比赛时打了个高精数位DP那么勇猛,还AC了,现在真是返老还童了ORZ!!
2016-10-08 21:28:51
【HDU 3652】 B-number (数位DP)的更多相关文章
- hdu 5898 odd-even number 数位DP
传送门:hdu 5898 odd-even number 思路:数位DP,套着数位DP的模板搞一发就可以了不过要注意前导0的处理,dp[pos][pre][status][ze] pos:当前处理的位 ...
- HDU 5787 K-wolf Number 数位DP
K-wolf Number Problem Description Alice thinks an integer x is a K-wolf number, if every K adjacen ...
- HDU 3709 Balanced Number (数位DP)
Balanced Number Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- HDU 5179 beautiful number 数位dp
题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5179 bc(中文): http://bestcoder.hdu.edu.cn/contes ...
- hdu 5898 odd-even number(数位dp)
Problem Description For a number,if the length of continuous odd digits is even and the length of co ...
- HDU 5898 odd-even number (数位DP) -2016 ICPC沈阳赛区网络赛
题目链接 题意:一个数字,它每个数位上的奇数都形成偶数长度的段,偶数位都形成奇数长度的段他就是好的.问[L , R]的好数个数. 题解:裸的数位dp, 从高到低考虑每个数位, 状态里存下到当前位为止的 ...
- HDU 3652 B-number(数位dp)
题意:B数的定义是有字符串“13”且能被整数13整除的数,求[1,n]内的B数个数. 题解:这是数位DP,我也就是刚入门,前两天看到了非递归写法,好麻烦.所以我建议写dfs的方法,容易理解,代码还简短 ...
- HDU 3652 B-number (数位DP,入门)
题意: 如果一个整数能被13整除,且其含有子串13的,称为"B数",问[1,n]中有多少个B数? 思路: 这题不要用那个DFS的模板估计很快秒了. 状态设计为dp[位数][前缀][ ...
- 多校5 HDU5787 K-wolf Number 数位DP
// 多校5 HDU5787 K-wolf Number 数位DP // dp[pos][a][b][c][d][f] 当前在pos,前四个数分别是a b c d // f 用作标记,当现在枚举的数小 ...
- HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛
普通的数位DP计算回文串个数 /* HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 2-36进制下回文串个数 */ ...
随机推荐
- GridView中使用如下button OnClientClick代码会出现解析错误
在GridView中使用如下代码会出现解析错误: <asp:LinkButton ID="DeleteButton" runat="server" Cau ...
- javascript 中的new操作符的理解
new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在Javascript中,我们将这类方式成为Pseudoclassic ...
- javascript-02
1.js的特点2.js的数据类型3.js运算符 4.js的全局变量 |-定义在函数体外部的变量 |-定义在函数体内部没有使用var声明 var和没有var声明变量的区别? |-var ...
- react 编写组件 五
看以下示例了解如何定义一个组件 // 定义一个组件LikeButton var LikeButton = React.createClass({ // 给state定义初始值 getInitialSt ...
- java ssm框架入门(一)面向接口编程
因为工作上用到spring + strtus2 + mybatis ,所以开始学习下这个框架. 这里用到的是MySQL数据库 首先从web.xml 开始 <?xml version=" ...
- ADO.Net知识总结
(一)基础知识 ADO.NET: .NET中用来向数据库提交执行SQL语句的一堆类 本机访问直接"Windows验证",但是一般项目中都是单独的数据库服务器,程序在另外一台电脑上连 ...
- OLEDB读取EXCEL表格时,某些字段为空,怎么办?
转载:http://blog.sina.com.cn/s/blog_53864cba01011cbn.html 前些日子,写了一个Excel导入数据库的共同Batch,突然有一天发现当我修改Exc ...
- MongoDB笔记(二)访问权限
要访问数据库,那么对访问权限的设置是必须的! 1.启用权限控制(-auth),当启用MongoDB数据库服务时,对参数的设置可以决定是否启用权限控制 不开启: mongod -dbpath=D:/ ...
- Java中静态代码块,代码块,构造方法的理解
直接贴代码 class A { static { System.out.println("父类静态代码区"); } { System.out.println("父类代码区 ...
- tree命令
tree命令以树状图列出目录的内容. 1.语法 tree(选项)(参数) 2.选项 -a:显示所有文件和目录: -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合: -C:在文件和目录清单加 ...