HDU 4705 Y 树形枚举
摘要:
树形枚举--搜索题目描述:给你一棵树,要在一条简单路径上选3个不同的点构成一个集合,问能构成多少个不同的集合。解法:枚举所有结点,假设某个结点有n棵子树,每棵子树的结点个数分别为s1,s2,````sn.那么在选中该结点后,剩下的两个结点从子树上选,考虑顺序,则有方案数ans=s1*(sum(si)-s1)+s2*(sum(si)-s2)+```+sn*(sum(si)-sn),化简得ans=sum(si)^2-sum(si^2).实际上,另外两个点选了(1,2)和(2,1)对于集合{a,b,c}而言是一样的,所以方案数应该为ans/2。而一个结点的子节点的总和为n-1。只要求sum(si^2 阅读全文
posted @ 2013-08-25 20:33 allh123 阅读(158) 评论(0) 推荐(0)
浙公网安备 33010602011771号