
——数位DP
FeBr2
(๑•̀ㅂ•́)و✧
展开
-
数位DP——Bomb ( HDU 3555 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3555分析: 题意为给除一个数N,求出1-N这些数中含有49的子串的数的个数。初学数位DP,这道题就当例题了。题解:首先我们确定状态转移方程 dp[i][j]用于存储符合条件的数的个数i 代表目前处理的数长度为i这里dp[i][j]处理的数可以包含前导0dp[i][0]代表长度为i的数中原创 2016-07-18 17:06:10 · 470 阅读 · 0 评论 -
数位DP——不用62和4 ( HDU 2089 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2089分析: 给出啊一个范围[n, m],求范围内不含62与4的数字个数。题解:定义dp[i][j]为长度为i ,最高位为j的不含62与4的数字的个数。DP代码:void init(){ memset(dp,0,sizeof(dp)); int i,j,k; dp[原创 2016-07-18 22:01:18 · 597 阅读 · 0 评论 -
数位DP(组合数打表)—— Round Numbers ( POJ 3252 )
题目链接: http://poj.org/problem?id=3252分析: 求出S~F中转换成二进制数后0的个数≥1的个数的数字的个数。0的个数大于1的个数的数可以用组合数来做。题解:算出1~F+1和1~S的满足条件的个数相减即可。先一个数转换乘二进制形式存入数组中: void change(int n){ number[0]=0; //nubmer[0]用来原创 2016-07-20 20:15:29 · 485 阅读 · 0 评论 -
数位DP——Codeforces Beta Round #51 D. Beautiful numbers
题目链接: http://codeforces.com/problemset/problem/55/D分析: 定义Beautiful numbers为一个数x,x能整除它的十进制表示的每一位上的数字。求区间[L,R]内有多少个完美数字题解:这是一道标准的数位DP,将问题转化为求[1,x]内有多少个beautiful numbers。我们可以通过搜索计算出不同前缀下的数能包含多少个beautifu原创 2017-03-27 20:37:32 · 468 阅读 · 0 评论 -
数位DP——HDU 4352 XHXJ's LIS
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4352 题意:求出区间[L,R]内有多少个数字X,满足X上的所有位从左往右构成长度为K的严格递增子序列。原创 2017-03-27 23:49:17 · 439 阅读 · 0 评论 -
数位DP—— GDUT 等凹数字
题目链接: http://gdutcode.sinaapp.com/problem.php?cid=1057&pid=6题意:求出区间内等凹数字的个数,等凹数字:定义一种数字称为等凹数字,即从高位到地位,每一位的数字先非递增再非递减,不能全部数字一样,且该数是一个回文数,即从左读到右与从右读到左是一样的,仅形成一个等凹峰。分析:解析一个等凹数字需要满足的条件:必须下降过,必须上升过,必须是回文。原创 2017-03-28 13:44:33 · 1005 阅读 · 0 评论 -
数位DP——POJ 3252 Round Number
题目链接 : http://poj.org/problem?id=3252题意: 求区间内 Round Number的数量,定义Round Number:转换为二进制数后0的个数大于等于1的个数的数分析: 直接当成二进制数位DP来做,需要注意的是要判断一下前导0。前缀就是保存末尾数字,前缀含有0的个数,前缀含有1的个数。AC代码/*******************************原创 2017-03-29 17:42:27 · 369 阅读 · 0 评论