摘要: 题意就是求一个n个点的堆的合法形态数。 显然,给定堆中所有数的集合,则这个堆的根是确定的,而由于堆是完全二叉树,所以每个点左右子树的大小也是确定的。 设以i为根的堆的形态数为F(i),所以F(i)+=F(sz[2*i])*F(sz[2*i+1])*C(sz[i]-1,sz[2*i])。直接DP即可。 阅读全文
posted @ 2018-07-09 19:39 HocRiser 阅读(306) 评论(0) 推荐(0) 编辑
摘要: https://blog.sengxian.com/solutions/bzoj-1016 先总结一下MST的性质吧: 1.(圈性质)考虑一条非树边和一些树边构成的环,环上所有树边的权值一定不大于这条非树边。 2.(割性质)考虑图的一个割,这个割中的最小边一定被选入了MST。 3.考虑同一张图的两个 阅读全文
posted @ 2018-07-09 13:00 HocRiser 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 感觉自己还是很不擅长结论题啊。 先随便选一个树根,定义每一块中深度最小的点为这一块的根。 (可以发现选定了块的大小k后分块的方案就唯一确定了) 有一个显然的结论,一个点x能成为块根,仅当它的子树大小是k的倍数,即k|size[x]。 当且仅当满足此条件的点数有n/k个,k才对应一个合法方案。 先DF 阅读全文
posted @ 2018-07-09 10:59 HocRiser 阅读(222) 评论(0) 推荐(0) 编辑