大佬就是大佬,不得不服,37min,题目都不够做,你气不气。 钻研大佬代码的一些理解 二叉树,对与n个结点的二叉树,深度不超过k二叉树个数。 设dp[i][j]是子问题,i个结点不超过深度j的二叉树个数 对于一个二叉树,它的多样性由儿子决定。(因为每个结点都一样,所以谁是根都一样。) 所以,深度为b的树只跟深度为(b-1)的有关,那么对于结点为a个的树,我们枚举一下两个儿子的couple就可以了,具体表示如下 dp[a][b] = dp[a-1][b-1]*dp[0][b-1]+dp[a-2][b-1]*dp[1][b-1]+...+dp[1][b-1]*dp[a-2][b-1]+dp[0][b-1]*dp[a-1][b-1]; 有了方程,剩下的就是就是初始化的问题,迭代式子中多用乘号,对边界的处理, dp[0][b]初始化为1,(因为首位两项,dp[0][x]就是没有啊),其余值的初始化为0即可。 另外一题,ai1+aj1=ai2+aj2=...aik+ajk。对应两行的同列相加是个常数,很容易想到暴力法加哈希优化,但不幸 的是,如果说ai1是原行,ai2是它的搭档行,那么ai3 = ai2 + 常数,都满足结果。没办法记录哈希键值,因为对一个原行,它的搭档行不固定,就没办法记录。 a1+b1 = a2+b2,移项后 a1-a2 = b2-b1,得到楼主的结论 根据这个式子,我们把常数消掉,对与一个固定的原行,它的差分序列对应的搭档行的差分序列是固定的,根据这个特点,利用哈希进行优化。

相关推荐

牛客网
牛客企业服务