HDU 3652:B-number(数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=3652
题意:求数位含有13和可以被13整除的数字个数。
思路:记录3种状态:
st == 0 表示 从最高位到第 i 位既不包含 “13” 末尾也不包含 “1”。
st == 1 表示 末尾包含 “1”。
st == 2 表示 从最高位到第 i 位含有 “13”。
可以被 13 整除的话用一个参数来记录从最高位到第 i 位的和对 13 取模,当 mod == 0 && st == 2 的时候代表含有 “13” 并且可以被 13 整除。
1 #include <cstdio> 2 #include <algorithm> 3 #include <iostream> 4 #include <cstring> 5 #include <string> 6 #include <cmath> 7 #include <queue> 8 #include <vector> 9 using namespace std; 10 #define N 505 11 #define INF 0x3f3f3f3f 12 int dp[20][20][3]; 13 int bit[20]; 14 15 int dfs(int pos, int mo, int st, int limit) 16 { 17 if(pos <= 0) return st == 2 && mo == 0; 18 if(limit && ~dp[pos][mo][st]) return dp[pos][mo][st]; 19 int d = limit ? 9 : bit[pos]; 20 int ans = 0; 21 for(int i = 0; i <= d; i++) { 22 int ss = st; 23 int me = (mo * 10 + i) % 13; 24 if(st != 2 && i != 1) ss = 0; 25 if(st != 2 && i == 1) ss = 1; 26 if(st == 1 && i == 3) ss = 2; 27 ans += dfs(pos - 1, me, ss, limit || i != d); 28 } 29 if(limit) dp[pos][mo][st] = ans; 30 return ans; 31 } 32 33 int solve(int num) 34 { 35 int len = 0; 36 while(num) { 37 bit[++len] = num % 10; 38 num /= 10; 39 } 40 return dfs(len, 0, 0, 0); 41 } 42 43 int main() 44 { 45 int num; 46 while(~scanf("%d", &num)) { 47 memset(dp, -1, sizeof(dp)); 48 printf("%d\n", solve(num)); 49 } 50 return 0; 51 }
转载于:https://www.cnblogs.com/fightfordream/p/6021561.html
HDU 3652:B-number(数位DP)相关推荐
- HDU 3709 Balanced Number (数位DP)
题意 求出[x, y] 范围内的平衡数,平衡数定义为:以数中某个位为轴心,两边的数的偏移量为矩,数位权重,使得整个数平衡. 思路 外层枚举平衡点,然后数位DP即可.设计状态: dp[pos][o][l ...
- HDU - 3709 Balanced Number(数位dp)
题目链接:点击查看 题目大意:将一串数字视为天平,两端平衡的数字称为平衡数,并求出一段闭区间中平衡数的个数.所谓的平衡条件即为力臂与 力相乘后两端的数量和可以抵消,例如数字4139可以视为以3为中轴的 ...
- HDU 5787 wolf Number 数位dp
题意 题目就是说让我们在l到r的数字中求得有多少个连续k为不相同的数 1≤L≤R≤1e18 2≤K≤5 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...
- hdu 3652 B-number(数位DP)
传送门 参考博文: [1]:http://www.voidcn.com/article/p-drrnjrmy-wm.html 题意: 找出区间内数中含有13的并且能被13整除的数的个数 题解: 搜了好 ...
- HDU odd-even number 数位dp
题意 在l到r区间内求有多少个符合条件"当前数中所有连续的奇数长度是偶数 所有连续的偶数长度是奇数"的个数 分析 典型的数位dp问题 我们设置dp数组时可以根据 dp[pos][p ...
- HDU 3555 Bomb(数位DP模板啊两种形式)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Problem Description The counter-terrorists found ...
- HDU 6156 Palindrome Function 数位DP
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6156 题目描述: 求L~R所有的数的l~r进制的f(x), f(x) = 当前进制 如果回文串, f ...
- Hdu 2089-不要62 数位dp
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2089 不要62 Time Limit: 1000/1000 MS (Java/Others) Me ...
- HDU 2089 不要62 数位DP
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2089 题目描述: 给定一个区间, 让你求这个区间中所有不带62 或 4 的数的个数 解题思路: 很明 ...
- fzu 2109 Mountain Number 数位DP
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2109 题意: 如果一个>0的整数x,满足a[2*i+1] >= a[2*i]和a[2*i+2],则 ...
最新文章
- Web自动化测试 六 ----- selector选择
- mysql表大小限制_技术分享 | 在磁盘上查找 MySQL 表的大小
- Mac技巧之查看苹果电脑 Mac OS X 系统是否开启 64 位运算,以及设置 32/64 位模式的方法
- Docker有什么好处?
- Gradle实战-配置环境变量
- 几行代码就能实现为何要多此一举
- 【学习笔记】Arduino uno r3 控制led灯闪烁
- 聚类算法--K-Medoids(基于R的应用示例)
- 商用台式计算机施工方案,HP Elite 8300 商用台式电脑 - 主板说明
- 免费视频存储平台(微云、百度网盘、谷歌硬盘、酷播云)的截图对比
- 中文文本分类——商品评论情感判别
- 基于GitHub搭建个人网站
- Photoshop CS6调整界面字体大小
- 数据库工程师基础学习1----信息加密技术与逻辑运算
- 随笔:读书笔记--《CEO说像企业家一样思考》拉姆·查兰
- p2psearcher无法连接到KAD网络或ed2k服务器的解决办法
- 使用OpenCV进行图像修复、Navier-Stokes、INPAINT_TELEA,专栏:各种openCV实践的案例
- .bak 服务器备份文件,SQL2008 R2 如何使用SQL数据库备份文件.bak恢复数据库?
- 数据库内连接、左外连接、右外连接中的on、and、where条件使用
- 2022-2028全球与中国翻新医疗影像设备市场现状及未来发展趋势