初赛复习3
来源:互联网 发布:js判断ip能否ping通 编辑:程序博客网 时间:2024/06/05 15:55
题目
对于一棵二叉树,独立集是指两两互不相邻的节点构成的集合。例如,图1有5个不同的独立集(1个双点集合、3个单点集合、1个空集),图2有14个不同的独立集。那么,图3有___个不同的独立集。
方法
用树形dp的思想,分解问题,考虑一个点选择与不选两种情况,用f(表示选择该节点),g(表示不选该节点)两数组来记录
故(括号内为树的大小):
f(2)=1;
g(2)=2;
f(1)=1;
g(1)=1;
且可得以下两个状态转移方程
1.f(n)=g(左子树的大小)*g(右子树的大小)
一个点选了后左子树节点与右子树节点都不能选
2.g(n)=(g(左子树的大小)+f(左子树的大小))*(g(右子树的大小)+f(右子树的大小))
一个点若不选,则它左右两子节点可以选,也可以不选
具体计算过程
ans=f(17)+g(17)=1936+3600=5536
f(17)=g(8) * g(8)=1936
g(8)=(f(1)+g(1)) * (f(6)+g(6))=2 * (f(6)+g(6))=2 * (6+g(6))=44
f(6)=g(1) * g(4)=g(4)=6
g(4)=(f(1)+g(1)) * (f(2)+g(2))=2 * (f(2)+g(2))=6
g(6)=(f(1)+g(1)) * (f(4)+g(4))=2 * (f(4)+6)=16
f(4)=g(1) * g(2)=2g(17)=(f(8)+g(8)) * (f(8)+g(8))=(44+f(8))^2=3600
f(8)=g(1) * g(6)=16
- 初赛复习3
- 初赛复习
- 初赛复习
- 分区联赛初赛复习
- 分区联赛初赛复习
- NOIP初赛总复习
- 初赛复习2
- 初赛复习4
- 初赛复习5
- 初赛复习6
- 初赛复习7
- NOIP 初赛复习 : 排序算法!
- noip初赛复习(全)(转)
- 10.5做题——全排列(初赛复习)
- ACM初赛试题(3)
- 计蒜客初赛3练习赛
- 0【NOIP2013初赛】整除 1铺砖问题 2【NOIP2012初赛】新壳栈 3【NOIP2013初赛】青蛙
- [NOIP初赛复习]插空法与插板法解排列组合问题
- Java并发编程实战--笔记二
- JavaScript新的对象创建方式---Object.create()
- 如何在android studio里快速查找dugug签名
- iterable
- Android Launcher3分析——LauncherModel
- 初赛复习3
- React 7 React高级组件
- short s=1; s=s+1
- Java进阶之深入理解Java的接口和抽象类
- Linux操作系统与实训教程课后习题
- 1028. 人口普查(20)
- 记一次通过v$active_session_history来分析问题的案例
- 主图展示
- vs2015配置VAssistX