来自FallDream的博客,未经允许,请勿转载, 谢谢. 给你两棵树,一棵比较大(n<=1000),一棵比较小(m<=12) 问第一棵树中有多少个连通子树和第二棵同构. 答案取膜1e9+7 考虑在大树中随便选个根,然后在小的那棵那里枚举一个根作为大树中深度最小的节点(注意哈希判同构) 然后f[x][y]表示大树的x节点作为小树的y节点的方案数. 如果y是叶子结点,f[x][y]=1 否则要用x的儿子中的一些节点表示y的所有叶子节点. 考虑一个状压dp,g[i][s]表示前i个儿子表示了小树的…