最近一直在做树形dp,感觉这道题出的非常不错。卡了我一天。。 一上来读完题感觉和dp的思路很像,但是自己太弱了,无从下手。于是各种百度看结题报告、看论文。推荐几个结题报
最近一直在做树形dp,感觉这道题出的非常不错。卡了我一天。。
一上来读完题感觉和dp的思路很像,但是自己太弱了,无从下手。于是各种百度看结题报告、看论文。推荐几个结题报告
http://blog.sina.com.cn/s/blog_5f5353cc0100hd08.html
还有06年国家集训队杨劲松的论文,这些讲的都非常到位。
下面说说我的理解。这道题实质上就是让我们求从根节点到每一个叶子节点距离和的最小值(但是要按照一个最优的遍历子节点的顺序来求解,这个就是那个贪心的内容)
每个点设置两个状态值,一个表示只是路过这个点及其所有子节点a[i],另一个表示以这个点为根节点到它的每一个叶子节点距离和的最小值b[i](同样要按照上面提到的最优
顺序),然后再记录以这点为根的子树的叶子节点的个数。
然后就是状态转移的内容了,先假设一个最优遍历顺序,然后注意各种细节,推导出a[i]的表达式,再找其中的可贪心的部分(ps.这一部分的理论推导大家看上面的资料
就可以看懂了)。