codeforces 348B B. Apple Tree(dfs+数论)

这个题我一开始是当作树形dp搞的

题解:戳我


其实树上的dfs想成了树形dp,也是没走太多弯路的

但是为什么处理错了?


因为维护的方向和数值不对


维护的方向应该是从父亲的方向推到儿子的方向,但是基本树形dp都是从儿子维护到父亲


想想:如果当前节点u,有三个孩子,每个孩子有a1,a2,a3个孩子,那么如果我想要最小删除,那么当前节点u的总价值必须怎么计算?

应该是lcm(a1,a2,a3)对吧,我算成了a1*a2*a3


所以整理完毕思路之后:

叶子节点是可以放着不用管的

对于每个非叶子节点,我们都需要求个lcm,然后维护一下

如果当前的值不够分,那么就需要把所有的值全部删除(这样每个子树都是0,才可以)

否则,就按照整除lcm的方法去分


代码在链接中有,就不贴了,学习到了

全部评论

相关推荐

10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务