【HDU3652】【B-number】
来源:互联网 发布:乐视电视连不上网络 编辑:程序博客网 时间:2024/05/29 10:15
B-number
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3241 Accepted Submission(s): 1811
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
131002001000
Sample Output
1122
Author
wqb0039
Source
2010 Asia Regional Chengdu Site —— Online Contest
Recommend
lcy
#include <iostream>#include <cstring>#include <cmath>#include <queue>#include <stack>#include <list>#include <map>#include <set>#include <string>#include <cstdlib>#include <cstdio>#include <algorithm>using namespace std;typedef long long ll;ll dp[25][10][13][2]; // 0:ll bits[25];ll dfs(ll pos,ll p,ll mod,bool ok,bool flag){if(pos <= 0) return (mod == 0 && ok) ? 1 : 0; if(!flag && ~dp[pos][p][mod][ok]) return dp[pos][p][mod][ok];ll end = flag ? bits[pos] : 9;ll res = 0;for(int i=0;i<=end;i++){ll tmp = (mod*10 + i) % 13;//tmp = (13 - tmp) % 13;res += dfs(pos-1,i,tmp,ok || (p == 1 && i == 3),flag && (i==end));}return flag ? res : dp[pos][p][mod][ok] = res;}ll solve(ll x){ll cur = 0;ll tt =x ;while(tt > 0){bits[++cur] = tt % 10;tt /= 10;}return dfs(cur,0,0,0,1);}int main(){ll n;memset(dp,-1,sizeof(dp));while(scanf("%I64d",&n) != EOF){printf("%I64d\n",solve(n));}return 0;}
0 0
- hdu3652 B-number
- HDU3652 B-number
- hdu3652:B-number
- HDU3652 B-number
- HDU3652.B-number
- 【HDU3652】【B-number】
- HDU3652 B-number
- HDU3652[B-number]
- 【HDU3652】B-number
- HDU3652 B-number
- 【数位DP】 hdu3652 B-number
- 【hdu3652】【数位DP】B-number
- 【数位DP】B-number HDU3652
- HDU3652:B-number(数位DP)
- hdu3652 B-number (数位DP)
- HDU3652 B-number 数位DP
- hdu3652 B-number 数位dp
- [HDU3652]B-number && 数位DP
- json
- 单片机IO口模拟SPI四种模式的程序
- LeetCode(25)Reverse Nodes in k-Group
- 扫盲文件完整性校验——关于散列值和数字签名
- 有三个参数的函数,一个为字符,两个为整数,第二个整数代表行数,第一个整数代表每行的字符的个数
- 【HDU3652】【B-number】
- HD 1513 Palindrome 【LCS】
- [c语言]冒泡排序升级版------选择排序简单版
- mac os OS X 优山美地(Yosemite)如何提高最大连接数限制
- C语言-Pointer(high)AndMacro
- Installshield安装
- UI09_自定义cell
- java连接mysql数据库
- spring读取资源文件时自定义数据类型转换---CustomEditorConfigurer