beautiful numbers树形dp or 数位dp】的更多相关文章

BZOJ_1662_[Usaco2006 Nov]Round Numbers 圆环数_数位DP Description 正如你所知,奶牛们没有手指以至于不能玩“石头剪刀布”来任意地决定例如谁先挤奶的顺序.她们甚至也不能通过仍硬币的方式. 所以她们通过"round number"竞赛的方式.第一头牛选取一个整数,小于20亿.第二头牛也这样选取一个整数.如果这两个数都是 "round numbers",那么第一头牛获胜,否则第二头牛获胜. 如果一个正整数N的二进制表示中…
题目找链接 题意: 如果数a能被a中的每一位数整除(0除掉),则称a是一个beautiful number,求一个区间内的beautiful numbers的个数. 分析: 首先,很显然,l到r的所有beautiful numbers(以下写b n吧,有点长)等于0到r的b n个数减去0到l-1的b n的个数,这个不用证明吧.当然也很好证.然后我们只要能在时间允许的范围内求0到某个数的b n的数量就可以了. 怎么求能?我们把它转化到树上,先举个例子:如果要求0到23的b n的数量,那么我们假设有…
http://www.lydsy.com/JudgeOnline/problem.php?id=1662 这道题折腾了我两天啊-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 果然还是太弱 !!!!!!!!!! 一直想不通啊.. 数位dp太神了 ..orz 看题解各种不会啊...(神犇们的题解都说,裸数位dp,没了QAQ) 参考论文 刘聪<浅谈数位类统计问题> 在信息学竞赛中,有这样一类问题:求给定区间中,满足给定条件的某个 D 进制数或此类数的数量.所求的限定条件往往与数…
数位dp:一类统计区间[L,R]内某种符合规定的数字个数的题目.特征是R的范围会很大,O(N)范围内无法完成. 一般而言,解决这类题目有两种方式,一种是递推,另一种是记忆化搜索. 递推: 1)利用dp求出数组f[i][j](表示有i位,最高位为j的数字中符合要求的数字的个数) 2)根据给出的[L,R],利用f[]统计答案 记忆化搜索: int dfs(int pos,int pre,int lim){//当前位置 前一位的数字 是否有限制 ); &&!lim&&f[pos]…
dp(动态规划)顾名思义便是动态的一种规划,而这种规划往往会跟状态,状态转移方程,记忆化搜索扯上关系,当然DP也是各个OI考试的必考点和常考点,在毒瘤出题人的折磨下,出现了许许多多的动态规划,有线性,背包,环形,插头,区间,数位,状压等等各种动态规划,最近刚刚吧区间和数位DP学会. 区间DP:一看就知道肯定与区间有关,这类DP主要处理一些区间的最值和各种状态,貌似ST表就相当于区间DP,说到区间DP,就不得不提一个题——石子合并. 题目: 我们乍一看似乎可以贪心,但是这个题跟合并果子可是万万不同…
King's Order Accepts: 381 Submissions: 1361 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description After the king's speech , everyone is encouraged. But the war is not over. The king needs to give orders…
又一次降智…… (数位 DP 原来可以写这么短,学到了) 问题可以转化为求数位中 $\ge k$ 的有恰好 $j$ 位的数的个数.设为 $c_{j,k}$. 那么答案就是:(考虑把 $k$ 的贡献拆开,比如 $9$ 的贡献拆成 $1$ 的贡献的 $9$ 倍,然后分配到 $1$ 到 $9$) $$\sum_{1\le j\le n,1\le k\le 9}c_{j,k}\underbrace{111\dots111}_{j}$$ 求 $c_{j,k}$ 可以数位 DP.(此处不是记忆化搜索的形式,…
题意:给定一个数,求将该数重新排列后mod m==0的方案数 重新排列就考虑到用到哪些数,以及此时mod m的值 于是dp[i][j]表示状态i中mod m==j的方案数 注意:转移的时候只要找到一种可行的转移就行,不然会计算重复的方案数 为了转移的方便,可以将相同的数字放在一起便于检索 Code #include <cstdio> #include <algorithm> #include <cstring> #define ll long long using na…
题意: 平衡树定义为“一个整数的某个数位若是奇数,则该奇数必定出现偶数次:偶数位则必须出现奇数次”,比如 222,数位为偶数2,共出现3次,是奇数次,所以合法.给一个区间[L,R],问有多少个平衡数? 思路: 这题比较好解决,只有前导零问题需要解决.如果枚举到011,那么其前导零(偶数)出现了1次而已,而此数11却是平衡数,所以不允许前导零的出现! 由于dfs时必定会枚举到前导零,否则位数较少的那些统计不到.状态需要3维or2维也行,3维的比较容易处理,用一维表示数位出现次数,另一维表示数位是否…
转载自:http://blog.csdn.net/guognib/article/details/25472879 参考: http://www.cnblogs.com/jffifa/archive/2012/08/17/2644847.html kuangbin :http://www.cnblogs.com/kuangbin/category/476047.html http://blog.csdn.net/cmonkey_cfj/article/details/7798809 http:/…