随笔分类 -  动态规划——数位dp

posted @ 2019-05-15 09:52 wxyww 阅读(266) 评论(1) 推荐(0) 编辑
摘要:题目链接 思路 首先这是一个阶梯博弈。 我们将金币两两组合,如果对方移动前一个,那么我们把后一个移动相同的距离,局面相当于没有变化。如果对方移动后一个,就相当于$NIM$游戏中,取走了一些石子。 所以这个游戏也就是金币两两组合后,有$\lceil \frac{m}{2}\rceil$ 堆石子,进行$ 阅读全文
posted @ 2019-03-17 19:38 wxyww 阅读(186) 评论(0) 推荐(0) 编辑
摘要:题目链接 题意 定义一个数字$x$是$beautiful\ number$当且仅当$x$可以被其十进制表示下所有非$0$位置的数整除。 例如$24$是一个$beautiful\ number$,因为他可以被$2$和$4$整除。 而$28$不是一个$beautiful\ number$,因为他不能被$ 阅读全文
posted @ 2019-02-21 15:16 wxyww 阅读(195) 评论(0) 推荐(1) 编辑
摘要:思路 一道比较经典的题。 $x\otimes 3x=2x$等价于$x \otimes 2x=3x$ 异或其实就是不进位的加法。因为$x + 2x=3x$,所以只要满足$x+2x$在二进制上没有进位即可。很容易发现其实就是要求$x$的二进制位置上没有相邻的两个$1$。 对于第一问,很裸的数位$dp$ 阅读全文
posted @ 2018-10-10 09:04 wxyww 阅读(142) 评论(0) 推荐(0) 编辑
摘要:"luogu2657" 思路 数位dp,记录下上个位置的数,如果当前的数字与上个数字的差值小于2,就不再转移。还是要注意排除前导0。在记忆化的时候,全都是前导0的情况不能记忆化。 代码 cpp include include include using namespace std; typedef 阅读全文
posted @ 2018-10-09 20:00 wxyww 阅读(244) 评论(0) 推荐(0) 编辑
摘要:"hdu6148" 思路 一个数位dp模板题,注意判断前导0。用一个bz来记录当前是应该增还是可增可减。然后排除不满足条件的情况并进行dp即可。 代码 cpp include include include using namespace std; typedef long long ll; con 阅读全文
posted @ 2018-10-09 18:59 wxyww 阅读(114) 评论(0) 推荐(0) 编辑
摘要:"hdu2089" 思路 数位dp模板题。从高位往低位进行搜索,用pos记录当前位置,lst记录上个位置的数字,bz记录上个位置是否是6,limit来记录上个位置是否达到了上界(如果达到了,就需要对当前位置的上界进行处理) 代码 阅读全文

点击右上角即可分享
微信分享提示