摘要: 发现今天没怎么做题,于是随便写了今天杭电热身赛的一题。题目:给出一棵树,删边和添边的费用都是1,问如何删掉一些树边添加一些树边,使得树变成一个环。分析:统计树的分支数。大概有两种做法:1.直接dfs,由底向上统计,对于叶子节点,返回1。对于父节点,统计子节点的返回值的和(sum),如果大于1,说明存在两个子链或以上,所以这里需要sum-1个分支,返回0。如果小于等于1,返回1。画个图就知道了。。。图中发现:节点返回值和为sum>1时,需要sum-1个分支。某节点返回值和sum=3,则需要2个分支;一个返回值和为sum=2,则需要1个;如果返回值为1,说明可以跟上面某个父节点组成一条链。加 阅读全文
posted @ 2013-09-08 22:52 yejinru 阅读(336) 评论(0) 推荐(0) 编辑