博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 3652 B-number
阅读量:5908 次
发布时间:2019-06-19

本文共 1500 字,大约阅读时间需要 5 分钟。

B-number

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Problem Description
A 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.
 
Input
Process till EOF. In each line, there is one positive integer n(1 <= n <= 1000000000).
 
Output
Print each answer in a single line.
 
Sample Input
13
100
200
1000
 
Sample Output
1
1
2
2
 
Author
wqb0039
 
Source
 
Recommend
lcy   |   We have carefully selected several similar problems for you:            
 
数位DP
#include
#include
using namespace std;int a[20],pos,dp[20][3][13];int dfs(int dep,int type,int mod,bool lim){ if(!dep) return type==2 && !mod; if(!lim && dp[dep][type][mod]!=-1) return dp[dep][type][mod]; int ans=0,up= lim ? a[dep] : 9; for(int i=0;i<=up;i++) { if(type==2 || (type==1 && i==3)) ans+=dfs(dep-1,2,(mod*10+i)%13,lim && i==up); else ans+=dfs(dep-1,i==1 ? 1 : 0,(mod*10+i)%13,lim && i==up); } if(!lim) dp[dep][type][mod]=ans; return ans;}int solve(int n){ while(n) { a[++pos]=n%10; n/=10; } return dfs(pos,0,0,1);}int main(){ int n; memset(dp,-1,sizeof(dp)); while(scanf("%d",&n)!=EOF) { printf("%d\n",solve(n)); pos=0; }}

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7157958.html

你可能感兴趣的文章
web.xml/servlet过滤器之压缩GzipFilter
查看>>
MySQL服务器/tmp目录被占满
查看>>
用xtrabackup实现mysql的主从复制快速部署【主不锁表】
查看>>
清明情
查看>>
分享Hadoop大数据年薪23W就业分享
查看>>
如何使用live writer客户端来发布CSDN的博客文章
查看>>
linux 服务器定时重启reboot
查看>>
LinuxCast 邮件服务器 视频教程笔记
查看>>
linux系统优化
查看>>
巨石应用转微服务
查看>>
问答:归档产品如何保障数据安全(上)
查看>>
6.线程同步
查看>>
HTML5坦克大战
查看>>
20120122 linux 启动流程
查看>>
音视频同步原理解析
查看>>
mac下更新自带的PHP版本到5.6或7.0
查看>>
我的新博客开通了~
查看>>
lvs-heartbeat
查看>>
【标题】
查看>>
话说大数据:非互联网企业从小数据开始
查看>>