ACM-动态规划-数位DP
暗金色
这个作者很懒,什么都没留下…
展开
-
LightOJ - 1032 Fast Bit Calculations(数位DP)
题目大意:求0-n的二进制数的所有相邻1的数量 相邻1指两个1相邻解题思路:数位dp,dp[i][j][k]表示第i个位置,前一个数是j,到目前为止相邻的1有k个相邻1的总数#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N原创 2015-10-27 23:22:35 · 460 阅读 · 0 评论 -
HYSBZ - 1026 windy数 数位DP
题目大意:windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?解题思路:模板题目,初始的pre是12,保证第一位能满足#include#include#includeusing namespace std;int data[12],dp[12][13];int D原创 2014-11-25 23:36:23 · 737 阅读 · 0 评论 -
LightOJ - 1068 Investigation(数位DP)
题目大意:给你三个数,l, r, k,问[l,r] 这个范围内,有多少个数满足该数能被k整除,且所有数位和能被k整除解题思路:一个大剪枝,因为给的数字是小于2^31,10位数,且最高位为2,所以最大的数位和就不会超过90了,所以k超过90的,答案都是0 接下来就是数位DP了,用dp[pos][sum][mod]表示当前在i位,前面所有数位的和和k的余数是sum,前面的数和k的余数是mod #inc原创 2015-10-28 23:07:04 · 451 阅读 · 0 评论 -
HDU - 3555 Bomb 数位DP
题目大意:如果一个数中出现连续的49的话就表示炸弹的能量+1,给你一个数,求从0到这个数的这个区间内,炸弹的能量可以到达多少解题思路:数位DP的模板题,判断的时候加个flag标志表示是否满足能量加1这个要求#include#include#define ll __int64int data[30];ll dp[30][12][3];ll DP(int pos,int pre,in原创 2014-11-27 00:16:13 · 673 阅读 · 0 评论 -
LightOJ - 1140 How Many Zeroes?(数位DP)
题目大意:问[l,r]这个范围内的数,有多少个0解题路上:用dp[has][cur]表示到了第i位,拥有0的数量为has的情况下有多少个零,接着就是数位DP了#include <cstdio>#include <cstring>typedef long long LL;const int N = 35;int bit[N];int cas = 1;LL dp[N][N];LL dfs(in原创 2015-10-31 23:21:20 · 479 阅读 · 0 评论 -
FZU - 2109 Mountain Number 数位DP
题目大意:参考点击打开链接解题思路:如果不懂可以问,讨论了能加深了解#include#includeint dp[12][12][2],data[12];//pos表示当前位,pre表示前一位的数是多少,parity表示该位是奇数位还是偶数位,jud表示是否有前导零,board前面那一位是否是最大值int DP(int pos,int pre,int parity,bool jud原创 2014-11-25 20:21:58 · 801 阅读 · 0 评论 -
HDU - 2089 不要62 数位DP
题目大意:杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有4或62的号码。例如: 62315 73418 88914 都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所原创 2014-11-26 00:02:29 · 624 阅读 · 0 评论