AFO在即的年迈的(Mychael)由于体力懒惰原因,对于部分懒得动手的题目,就堆砌在这里啦
省一点精力与时间
hdu5896&5552
就是要求(n)个点带环无向图个数
补集转化,用无向图总数减去森林个数
无向图总数是(2^{{n choose 2}})很好办
森林总数显然就要(dp)了
设(f[i])为(i)个点森林的个数
枚举(1)号点所在树的大小,又由于(n)个点的树有(n^{n - 2})个
所以
分治(NTT)即可
CF932E Team Work
和BZOJ5093是一样的
利用(n^k = sumlimits_{i = 0}^{n}egin{Bmatrix} k \ i end{Bmatrix} {n choose i}i!)化式子
最后预处理出第二类斯特林数即可
什么?你问这个式子怎么来的?
考虑(k)个位置涂(n)种颜色的方案为(n^k)
我们枚举涂了几种颜色,即可得出右式
题解
BZOJ4754
由这题听说了一种树(hash)的方式
对于一个节点,将其子树递归求出(hash)值,然后将(hash)值排序,作为该根节点的(hash)元素再求一次(hash),同时也要加入根节点的(hash)值【每个节点(hash)值相同】
对于一棵树,我们企图对所有节点为根求出(hash)值
我们只需对任意节点为根求一次(hash)值,剩余的点可以(O(1))求出
对于该点相邻的节点,我们找到该点向根求(hash)时到该点时的(hash)值,再结合最终的(hash)值可以计算出去掉该子树后的(hash)值,从而实现根的转移
对于这题,只需求出以(B)每个叶子为根的(hash)值,对于同一个(hash)值选择编号小的叶子记录,然后求出(A)每个节点为根的(hash)值,再向上接一个节点求出新的(hash)值,再从(B)中查表更新答案
复杂度是加上排序的(O(nlogn))
感觉以后有必要实现一下
BZOJ4386
数据巨小,而是有向图路径计数,可以想到邻接矩阵的次幂
二分一下答案,我们需要求的是小于等于某个值的路径数
如果只考虑(1)的边,我们新加一个点作为计数器,所有点向它连边,它连自环
如果加入(2)和(3)的边,就拆点,每个点拆出(2)和(3)对应的点
复杂度(O((3n)^3logK))