【BZOJ2878】【NOI2012】迷失游乐园(动态规划)
题面
题解
记得以前考试的时候做过这道题目
这题的暴力还是非常显然的,每次
\(dfs\)一下就好了。
时间复杂度
\(O(n^2)\) #include #include #include #include #include #include #include #include
发现到有一棵树的部分数据点
考虑一下树的答案
显然是以当前点为根节点,到达它所有叶子的路径长度的期望
显然可以树型
\(dp\)+换根解决,复杂度
\(O(n)\) 综合暴力可以拿到
\(80\)分
#include #include #include #include #include #include #include #include
剩下的问题是如何解决\(n=m\),也就是基环树的问题
我们这样考虑。
首先把环给拉出来,拉直,然后一条边从头连到尾
那么,这样子就是一个环,然后每个点上面挂着一些点
我们显然可以计算出每个点向下的期望,现在要算的是向上的期望
因为向上的期望只可能在环上走,所以枚举所有环上的点,依次考虑每个点的期望
因为在环上只有三种走法,向左,向右,走向子树
因此,对于每个环上的点,暴力
\(dfs\)一遍,计算它到达长度的期望,
这个长度显然是到达某个环上的点之后,进入了这个点的子树。
这样子再像树型
\(dp\)一样从上往下转移一次就好了。
#include #include #include #include #include #include #include #include