这是树上背包计数?上下界优化裸题?
考虑大力(dp)
(f[u][i][0/1][0/1])表示(u)子树选了(i)个节点,当前点选不选,是否被覆盖
大力分类讨论
(f[u][i+j][0][0]=sum f[u][i][0][0]*f[v][j][0][1])
(f[u][i+j][0][1]=sum f[u][i][0][1]*(f[v][j][0][1]+f[v][j][1][1])+f[u][j][0][0]*f[v][j][1][1])
(f[u][i+j][1][0]=sum f[u][i][1][0]*(f[v][j][0][0]+f[v][j][0][1]))
(f[u][i+j][1][1]=sum f[u][i][1][0]*(f[v][j][1][0]+f[v][j][1][1])+f[u][i][1][1]*(f[v][j][0][0]+f[v][j][0][1]+f[v][j][1][0]+f[v][j][1][1]))
虽然很 长长长长长长长长长长长长长长长长长长长长长长长长
但是很显然
我们加一个长得和暴力没多大区别的上下界优化
一道黑题就过了