[cf674E]Bear and Destroying Subtrees】的更多相关文章

令$f_{i,j}$表示以$i$为根的子树中,深度小于等于$j$的概率,那么$ans_{i}=\sum_{j=1}^{dep}(f_{i,j}-f_{i,j-1})j$ 大约来估计一下$f_{i,j}$的大小,较坏情况下是$\lfloor\frac{n-1}{j}\rfloor$个深度为$j$的节点(若选择有公共部分,虽然会增加节点数但并实际边的数量减少),即可以认为$f_{i,j}\ge (1-\frac{1}{2^{j}})^{\lfloor\frac{n-1}{j}\rfloor}$ 其在…
题目链接 CF643E. Bear and Destroying Subtrees 题解 dp[i][j]表示以i为根的子树中,树高小于等于j的概率 转移就是dp[i][j] = 0.5 + 0.5 (dp[i][j-1]) 首先是边不连的概率,其次是<=dp[son][j -1]的 然后我zz了 对于新增一个点,对于父亲的深度影响只有该节点的深度+1,除掉旧的乘上新的就OK,我全更新了一遍...,写出了奇怪的bug... 对于新点,只需要向上更新60次就好了,因为\(\frac{1}{2^60…
E. Bear and Destroying Subtrees http://codeforces.com/problemset/problem/643/E 题意: Q个操作. 加点,在原来的树上加一个点,之后还是一棵树,初始时一个点. 让一棵子树内每条边有1/2的概率消失,然后的深度为:剩余的与子树的根联通的点中深度最大的.询问假如攻击这个点,期望深度. 分析: 可以枚举一个深度,计算概率. f[x][i]表示以x为根的子树中,深度为<=x的概率.那么答案就是$\sum_{h=1}^{MAX\…
CF643E Bear and Destroying Subtrees 设 \(f_{i,j}\) 表示节点 \(i\) 的子树深度为 \(\le j\) 的概率,\(ch_i\) 表示 \(i\) 的儿子节点集合. \(2^{-50}\) 以下的值由于精度忽视. \[f_{i,j}= \begin{cases} \frac{1}{2^{|ch_i|}}&(j=0)\\ \prod_{s\in ch_i}\frac{f_{s,j-1}+1}{2}&(j>0)\\ \end{cases…
题目链接 \(Description\) 有一棵树.Limak可以攻击树上的某棵子树,然后这棵子树上的每条边有\(\frac{1}{2}\)的概率消失.定义 若攻击以\(x\)为根的子树,高度\(ht(x)\)为\(x\)子树剩余点(与x连通)的最大深度.共\(q\)次操作,两种: \(1\ x\).新建一个节点,其父节点为\(x\). \(2\ x\).询问若攻击以\(x\)为根的子树,\(x\)子树的期望高度. \(q\leq 5\times10^5\).允许有一定精度误差. \(Solut…
题解 我们可以先写出\(dp\)式来. 设\(dp[u][i]\)表示以\(u\)为根的子树深度不超过\(i-1\)的概率 \(dp[u][i]=\prod (dp[v][i-1]+1)*\frac{1}{2}\) 然后因为这道题精度要求比较低,所以我们对于每个\(u\),保留第二维60个就行了. 所以每次加入一个节点的时候,我们只需要更新父链上60个\(dp\)值就好了,复杂度\(O(n*60)\). 代码 #include<bits/stdc++.h> #define N 500002 u…
Description: ​ 给你一棵初始只有根为1的树 ​ 两种操作 ​ 1 x 表示加入一个新点以 x为父亲 ​ 2 x 表示以 x 为根的子树期望最深深度 ​ 每条边都有 \(\frac{1}{2}\) 的概率断裂. Solution: \[ E(\max\{A\}) \not=\max\{E(A)\} \] ​ 所以一般会从定义出发,设 \(dp[x][i]\) 表示以 \(x\) 为根,深度为 \(i\) 的概率. ​ 然后不好确定这个深度是在哪取到,所以可以设 \(dp[x][i]\…
CF79D Password: 差分.两点取反,本质是匹配!最短路+状压DP 取反是套路,匹配是发现可以把操作进行目的化和阶段化,从而第二次转化问题. 且匹配不会影响别的位置答案 sequence 计算最长极长段小于等于j的方案数 突破口是i,k总共对数nlogn级别,干掉j用组合意义大力推导 CF1062F Upgrading Cities DAG考虑topo,关键性质:topo序队列中点两两不可达.只在队列长度<=2时候才关心. CF1060F Shrinking Tree 考虑x是不是rt…
B. Bear and Blocks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/573/problem/B Description Limak is a little bear who loves to play. Today he is playing by destroying block towers. He built n towers in a row. The i-th tow…
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Limak is a little bear who loves to play. Today he is playing by destroying block towers. He built n towers in a row. The i-th tower is made of h…