![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划----数位dp
994495jj
这个作者很懒,什么都没留下…
展开
-
codeforces 55D Beautiful numbers( 数位dp )
题意:计算 [L,R] 中能被自己的所有非零dig整除的数的个数。 题解:数位dp。 一开始的想法是用一个二进制存出现过的dig,维护sum(ll),直到pos 虽然最后是看了题解才做出来,但是还要理一下思路。 >>对于一个数,它能够被几个数整除的充要条件是它能被这几个数的lcm整除。 1~9的lcm有不超过50种可能,离散化一下就可以。 因此 [二进制的状态数]原创 2017-04-24 21:23:50 · 236 阅读 · 0 评论 -
HDU 4352 XHXJ's LIS(数位dp)
题意:寻找 [L,R] 中满足条件的数的数量。条件:把一个数看成字符串,它的LIS若等于k,则满足条件。 题解:数位dp。 一开始的想法:考虑nlogn的LIS写法,因此状态包含一个长度为10的字符串,由0~9,inf组成。 但是需要把字符串映射成int,用到map,复杂度据说太高了。 正解:nlogn的LIS写法是维护了一个数组,由0~9,inf组成。那么对于本题,我原创 2017-04-24 21:32:44 · 226 阅读 · 0 评论 -
HDU 3709 Balanced Number(数位dp)
枚举平衡点的位置 #include #include typedef long long ll; int dig[20]; ll d[20][20][2000]; ll dp(int po,int bal,int sum,bool zero,bool limit) { if(po<0) return sum==0; if(!limit&&!zero&&d[po][bal][sum]!=-原创 2017-04-25 20:49:39 · 197 阅读 · 0 评论 -
HDU 4734 F(x)(数位dp)
题意:寻找 [0,B] 中满足条件的数的数量。条件:这个数的weigh 题解:数位dp。 一开始存了当前状态的weigh和F(A),但是这样MLE了... 后来看了题解,发现存的是F(A)-weigh orz #include #include int fa; int dig[15],d[15][5000],ba[15]; int dp(int po,int sum原创 2017-04-25 20:53:23 · 166 阅读 · 0 评论 -
ZOJ 3494 BCD Code(数位dp+AC自动机)
题意:给定n个串,找出[L,R]中满足条件的数的数量。条件:该数的BCD码不出现n个串中的任意一个。 题解: 搞懂了AC自动机就变得很简单 上了可计算性理论之后对AC自动机的理解:AC自动机其实就是建立一个确定性有穷自动机。任意一个输入的语言从起始节点出发,如果途经终结状态,那么它便包含AC自动机中存的子串。 #include #include #include using原创 2017-04-25 20:59:19 · 365 阅读 · 0 评论