
动态规划-数位dp
文章平均质量分 52
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
-
uva 11361 - Investigating Div-Sum Property(数位dp)
题目链接:uva 11361 - Investigating Div-Sum Property题目大意:给出a,b,k,问说在[a,b]这个区间有多少n,满足n整除k,以及n的各个为上的数字之和也整除k。解题思路:数位dp,dp[i][j][x]表示第i为的时候,n整除k余j,n(以及考虑到的位数)的各个位置上的数字之和整除k余x的情况总数,并且每次要计算上限的临界值。#inc原创 2014-05-18 20:02:06 · 1336 阅读 · 0 评论 -
hdu 5435 A serious math problem(数位dp)
题目链接:hdu 5435 A serious math problem裸的数位dp。#include #include #include using namespace std;typedef long long ll;const int maxn = 100005;const int maxd = 16;const int mod = 1e9 + 7;原创 2015-09-12 22:17:33 · 656 阅读 · 0 评论 -
hdu 5106 Bits Problem(数位dp)
题目链接:hdu 5106 Bits Problem题目大意:给定n和r,要求算出[0,r)之间所有n-onebit数的和。解题思路:数位dp,一个ct表示个数,dp表示和,然后就剩下普通的数位dp了。不过貌似正解是o(n)的算法,但是n才1000,用o(n^2)的复杂度也是够的。#include #include #include using namespac原创 2014-11-16 11:13:02 · 1332 阅读 · 0 评论 -
poj 3208 Apocalypse Someday(数位dp)
题目链接:poj 3208 Apocalypse Someday题目大意:给定n,输出第n大包含666的数字。解题思路:数位dp,用类似AC自动机的思想进行转移。首先dp[i][j]表示说i位最后有j个连续6的情况数,这个预处理出来。那么dp[i][3]即为i位有多少个满足的数。给定n,先确定位数d。然后从最高位向下判断,一开始肯定是需要3个连续的6,所以u为3,然原创 2014-11-13 20:28:49 · 2229 阅读 · 1 评论 -
zoj 3494 BCD Code(AC自动机+数位dp)
题目链接:zoj 3494 BCD Code题目大意:给定n个2进制串,然后有一个区间l,r,问说l,r之间有多少个数转换成BCD二进制后不包含上面的2进制串。解题思路:AC自动机+数位dp。先对禁止串建立AC自动机,所有的单词节点即为禁止通行的节点。接着进行数位dp,dp[i][j]表示第i为移动到节点j的可行方案数,每次枚举下一位数字,因为是BCD二进制,所以每位数要一原创 2014-11-13 20:23:18 · 1462 阅读 · 0 评论 -
hdu 4734 F(x)(数位dp)
题目链接:hdu 4734 F(x)题目大意:给定f(x)的计算公式,现在给出n和m,求有多少个x,x 解题思路:数位dp,dp[i][j]表示到第10i内,然后f值为j的总数。#include #include #include using namespace std;const int maxn = 10000;int n, bit[15];int dp[1原创 2014-09-08 14:01:02 · 907 阅读 · 0 评论 -
uva 1489 - Math teacher's homework(数位dp)
题目链接:uva 1489 - Math teacher's homework题目大意:给定n,k,以及序列m1,m2,…,mn, 要求找到一个长度为n的序列,满足0=xi=mi, 并且x1XORx2XOR…XORxn=k解题思路:数位dp,在网上看了别人的代码,高大上。。。假设有二进制数 k : 00001xxxx mi:0001xxxxx, 那么对于xi即可原创 2014-07-30 22:30:07 · 1686 阅读 · 1 评论 -
uva 10712 - Count the Numbers(数位dp)
题目链接:uva 10712 - Count the Numbers题目大意:给出n,a,b;问说在a到b之间有多少个n。解题思路:数位dp,dp[i][j][x][y]表示第i位为j的时候,x是否前面是相等的,y是否已经出现过n。对于n=0的情况要特殊处理前导0,写的非常乱,搓死。#include #include #include #include原创 2014-06-22 21:15:46 · 1164 阅读 · 0 评论 -
uva 417 - Word Index(数位dp)
题目连接:uva 417 - Word Index题目大意:按照题目中的要求,为字符串编号,现在给出字符串,问说编号为多少,注意字符串必须为递增的,否则编号为0。解题思路:其实就是算说比给定字符串小并且满足递增的串由多少个。dp[i][j]表示第i个位为j满足比给定字符串小并且满足递增的串。dp[i][j]=∑k=0j−1dp[i−1][k].注意每次要处理边界的情况,并且原创 2014-05-22 21:34:01 · 1481 阅读 · 0 评论 -
hihoCoder 1259 A Math Problem(数位dp)
题目链接:hihoCoder 1259 A Math Problem解题思路公式推导完为f(2n) = 3 * f(n), f(2n+1) = 3 * f(n) + 1,即为i的2进制作为3进制计算贡献。代码#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;ty原创 2015-11-16 15:48:18 · 1749 阅读 · 1 评论