洛谷P4438 道路 [HNOI/AHOI2018] 树形dp

正解:树形dp

解题报告:

传送门!

昂首先看懂题目趴QwQ大概就是说有棵二叉树,有n个叶子节点(乡村)和n-1个非叶子节点,然后这棵树的每个节点有三个属性abc,对每个非叶子节点可以从与子节点的两条连边中选一条标记

然后对每个叶子节点i,设它到根节点经过了x条麻油被标记的左连边,y条麻油被标记的右连边,那它的贡献就会是ci*(ai-x)*(bi-y)

然后就考虑dp鸭

设f[x][i][j]:对于节点x,到达根的路径上有i条麻油标记的左连边,j条麻油标记的右连边

然后初始化是对叶子节点,直接枚举i和j

然后转移就是对非叶子节点,可以标记左连边可以标记右连边,就f[x][i][j]=min(f[x.ls][i][j]+f[x.rs][i][j+1],f[x.ls][i+1][j]+f[x.rs][i][j])

答案就是f[1][0][0]嘛

然后这题就做完辣!

对了还有一个就是这题可以卡一波空间,,,?等把最朴素的代码做完辣再看趴QAQ

猜你喜欢

转载自www.cnblogs.com/lqsukida/p/10397527.html