计数dp
帐下幕僚
我只是一个普普通通的大学学生,我来到这里是想获得我在学校所不能得到的知识。
展开
-
hdu5136Yue Fei's Battle(计数dp)
题意求树的直径有k个点的不同构数的个数 从树的直径所在的链中间切开后就得到两个二叉树(记树的深度所在的链的节点数为d),且如果k是偶数,那么k = 2 * d,如果k是奇数,那么会得到三个二叉树,其中有两颗二叉树d = k / 2,另外一颗 <= k / 2。 而令dp[i]为树的深度所在的链的节点数等于i的不同构的数的个数 sum[i]为树的深度所在的链的节点数小于等于i的不同构的数的个数原创 2016-10-23 00:18:21 · 297 阅读 · 0 评论 -
uvalive7271(A Math Problem) 数位dp
根据题目条件可以推得 f(2n) = 3 * f(n) , f(2n + 1) = f(2n) + 1 = 3 * f(n) + 1 . 也就是把一个二进制数直接看成三进制数,接着就是从 1 到 n(3进制)中模 k 余 (0 ~ k-1 , 十进制)的数的个数的 xor。(看题解的,本来我也没想到) 用数位dp就可以解决了,刚开始的数位dp我写得有点问题,照着题解(我看的第一个题解数位d原创 2017-02-09 22:18:04 · 577 阅读 · 0 评论