CF736C
给定一棵树,将点黑白染色,使得每个点u距离不超过k的点v中存在至少一个黑点, n<=100 k<=20
dp[u][a][b]表示以u为根的子树、最深的未覆盖点深度为a,最浅的黑点为b a=0表示都被覆盖 b=k+2表示没有染黑点
转移考虑每次向一个树上连接一颗子树 枚举原树的a,b 子树的c,d 合并即可
复杂度O(nk^4)
思路可能是这样来的
首先有树dp的 dp[u] ,然后考虑从子结点转移发现需要记录未染色点、再考虑子树间的相互影响,发现需要记录黑点
[每次并上一棵子树是关键]
思想上考虑加法原理的DAG可以对一个东西找它的前驱、或者推它的后缀
一个考虑我是怎么来的 另一个考虑我能传给谁
某ASC题
求一个n个点的树、满足父节点编号大于子节点、父节点的儿子个数大于等于子节点的儿子个数
f[i][j][k] 表示siz大小为i,有j个儿子,儿子的儿子个数<=k 的方案数
g[i][j] 表示siz大小为i,节点儿子个数<=j的合法方案数
转移考虑枚举除父节点外次大点所在子树大小i'
f[i][j][k] = \sum g[i'][k]*f[i-i'][j-1][k]*C(i-2,i'-1)
组合数是在未确定归属的i-2个编号中选i'-1个的方案数
复杂度O(n^4)
给定一棵树,将点黑白染色,使得每个点u距离不超过k的点v中存在至少一个黑点, n<=100 k<=20
dp[u][a][b]表示以u为根的子树、最深的未覆盖点深度为a,最浅的黑点为b a=0表示都被覆盖 b=k+2表示没有染黑点
转移考虑每次向一个树上连接一颗子树 枚举原树的a,b 子树的c,d 合并即可
复杂度O(nk^4)
思路可能是这样来的
首先有树dp的 dp[u] ,然后考虑从子结点转移发现需要记录未染色点、再考虑子树间的相互影响,发现需要记录黑点
[每次并上一棵子树是关键]
思想上考虑加法原理的DAG可以对一个东西找它的前驱、或者推它的后缀
一个考虑我是怎么来的 另一个考虑我能传给谁
某ASC题
求一个n个点的树、满足父节点编号大于子节点、父节点的儿子个数大于等于子节点的儿子个数
f[i][j][k] 表示siz大小为i,有j个儿子,儿子的儿子个数<=k 的方案数
g[i][j] 表示siz大小为i,节点儿子个数<=j的合法方案数
转移考虑枚举除父节点外次大点所在子树大小i'
f[i][j][k] = \sum g[i'][k]*f[i-i'][j-1][k]*C(i-2,i'-1)
组合数是在未确定归属的i-2个编号中选i'-1个的方案数
复杂度O(n^4)