
数位dp
文章平均质量分 77
我不会额
这个作者很懒,什么都没留下…
展开
-
HDU - 3271 SNIBB 数位dp
题目:有2中询问, 1:X,Y,B,M 在X到Y中的数转换成B进制之后,有多少个数满足他的每一位数的和是M 2:X,Y,B,M,K 在X到Y中的数转换成B进制之后,第K个 满足他的每一位数的和是M的数使多少 思路:dp[i][j]:转化成B进制后,长度为i的数中,数字和为j的数字有多少个 代码: #pragma comment(linker, "/STACK:1024000000原创 2017-08-31 14:27:08 · 316 阅读 · 0 评论 -
URAL - 1057 Amount of Degrees 数位dp
题目:求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于K 个互不相等的 B 的整 数次幂之和 思路:可以看成2进制的情况,找到第一个大于1的位置pos,从pos开始以后的数的01就可以随意组合了 dp[i][j]:2进制的情况下,长度为i的情况下,有j个1的数的个数 代码: #pragma comment(linker, "/STACK:1024000000,102400000原创 2017-08-31 21:38:01 · 239 阅读 · 0 评论 -
SPOJ - SORTBIT Sorted bit squence 数位dp
题目:将区间[m,n]内的所有整数按照其二进制表示中 1 的数量从小到大排序。如果 1 的数量 相同,则按照数的大小排序。求这个序列中的第 k个数。其中,负数使用补码来表示:一个 负数的二进制表示与其相反数的二进制之和恰好等于2^32。 m*n>=0 思路:枚举1的个数,然后找到区间内含有若干个1的数量,最终得到第K个数包含几个1。这样就确定出了答案中包含了len个1。 对于m和n是负数的情况原创 2017-08-31 23:12:30 · 228 阅读 · 0 评论 -
hdu6156 Palindrome Function 数位dp
题目:求L~R所有的数的l~r进制的f(x,k进制), 如果x是回文串f(x,k进制) = k, 否则等于1。 思路:数位dp 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #原创 2017-09-03 14:43:30 · 219 阅读 · 0 评论 -
POJ - 3252 Round Numbers
题目:一个数转化成二进制之后,0的个数大于等于1的为round数,问一个区间内有多少round数。 思路:数位dp 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #include #include #includ原创 2017-09-03 16:11:31 · 305 阅读 · 0 评论