其他分享
首页 > 其他分享> > 牛客-牛牛染颜色

牛客-牛牛染颜色

作者:互联网

题目传送门

sol:树形dp,用$dp[u]$表示节点$u$代表的子树合法染色方案的数量,若$u$节点是黑色,则所有儿子随意,产生的方案数为$\prod dp[v], v \in son[u]$;若$u$节点是白色,则含有黑节点的儿子最多只能有一个,也可以没有。因为$dp[v]$里必有一种方案是整颗$v$子树均为白色,所有产生的方案数为$1 + \sum {dp[v] - 1}, v \in son[u]$。两者相加即为$dp[u]$。

------------------------------------------------------------分隔线------------------------------------------------------------

总结:这道神奇的题目居然卡空间,一开始用vector存图 + dfs递归提交内存超限,改了bfs迭代形式就过了。赛后看了讨论群他们说这是卡vector存图,然鹅我居然在其他地方优化空间。不过这也让我意识到了递归,迭代,前向星和vector在效率上的区别。递归快,迭代省内存,前向星时间空间都优于vector。

标签:颜色,int,牛牛染,牛客,vector,MOD,tmp1,dp,tmp2
来源: https://www.cnblogs.com/Angel-Demon/p/12778581.html