摘要: 给定一棵树,求出分别以每个点为根的树的深度。其实这道题是四五月份时宁波初中比赛时的题目,当时的数据范围自然是1000,然后O(n^2)水过。当时比赛时题做完了,闲的无聊,打算想一想O(n)做法,当时也感觉挺可做的。几个月后突然想起来,今天就写了一下。算是一道树形dp吧。这题描述简单,做法也算有趣,自己感觉是个有意思的问题。解答也一句话,意会即可:每个点的深度=MAX(每个点向下的最长路,每个点向上的最长路);每个点向下的最长路=MAX(子树的向下的最长路)+1;每个点向上的最长路=MAX(父亲向上的最长路+1,父亲向下的次长路+1)【当这个点是父亲最大的儿子时】, 父亲的深度+1【当这个点不是 阅读全文
posted @ 2012-09-10 19:15 FancyCoder0 阅读(879) 评论(0) 推荐(0) 编辑