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