bzoj2830: [Shoi2012]随机树】的更多相关文章

题目链接 bzoj2830: [Shoi2012]随机树 题解 q1好做 设f[n]为扩展n次后的平均深度 那么\(f[n] = \frac{f[n - 1] * (n - 1) + f[n - 1] + 2}{n}\) 化简之后也就是\(f[n] = f[n - 1] + \frac{2}{n}\) q2也好做 设f[i][j]表示扩展i次,树高为j的概率,对于左右儿子,子问题显然是一样的 枚举左右子树的i j 转移 \(f[i][std::max(l,k) + 1] += f[j][k] *…
[SHOI2012]随机树 题目大意( 网址戳我! ) 随机树是一颗完全二叉树,初始状态下只有一个节点. 随机树的生成如下:每次随机选择一个叶子节点,扩展出两个儿子. 现在给定一个正整数\(n\)(\(n \le 100\)) , 询问叶子节点个数为\(n\)的随机树: \(q = 1\) :叶子节点的平均深度 \(q = 2\) :整棵随机树的平均深度 样例:\(cin\ q\ n\ \ \ \ ;cin\ 1\ 4\ ,\ put\ 2.166667\ \ \ ;\ \ \ cin \ 2…
P3830 随机树 坑题,别人的题解我看了一个下午没一个看得懂的,我还是太弱了. 题目链接 P3830 [SHOI2012]随机树 题目描述 输入输出格式 输入格式: 输入仅有一行,包含两个正整数 q, n,分别表示问题编号以及叶结点的个数. 输出格式: 输出仅有一行,包含一个实数 d,四舍五入精确到小数点后 6 位.如果 q = 1,则 d 表示叶结点平均深度的数学期望值:如果 q = 2,则 d 表示树深度的数学期望值. 说明 第一问很水,考虑每次新拓展节点就是让树的总深度加上 2 也就是:…
P3830 [SHOI2012]随机树 链接 分析: 第一问:f[i]表示有i个叶子结点的时候的平均深度,$f[i] = \frac{f[i - 1] + 2 + f[i - 1] * (i - 1)}{2} $,表示新增加一个叶子结点,深度增加2,加权后取平均值. 第二问:f[i][j]表示有i个叶子结点,树的深度大于等于j的概率,有$f[i][max(k, l)+ 1] = \frac{f[j][k] \times f[i - j][l]}{i - 1}$,$ans=\sum\limits_…
LINK:随机树 非常经典的期望dp. 考虑第一问:设f[i]表示前i个叶子节点的期望平均深度. 因为期望具有线性性 所以可以由每个叶子节点的期望平均深度得到总体的. \(f[i]=(f[i-1]\cdot (i-1)+(f[i-1]+1)\cdot 2-f[i-1])/i=f[i-1]+2/i\) 考虑第二问:可以设f[i][j]表示i个叶子节点树高恰好为j的概率. 转移即可 不过值得注意的是 P(i,k)有i个叶子k个被分给左子树的概率为1/(i-1) 这个可以通过计算得到.最终可以通过前缀…
https://www.luogu.org/problemnew/show/P3830#sub   <-题面看这里~ https://www.lydsy.com/JudgeOnline/problem.php?id=2830 感觉智商被压制了的一题……后面放吐槽. 参考:https://www.cnblogs.com/GuessYCB/p/8462490.html —————————————— 对于叶结点平均深度,我们令f(x)=(a1+...+ax)/x来表示(a可以每个叶子结点(人为标号)深…
传送门:洛谷 题目大意:对于一个只有一个节点的二叉树,一次操作随机将这棵树的叶节点的下方增加两个节点.$n-1$次操作后变为$n$个叶节点的二叉树.求:(1)叶节点平均深度的期望值(2)树深度的数学期望值 数据范围:$2\leq n\leq 100$ 首先看第(1)问 设$f_i$为$i$个叶节点的二叉树的叶节点平均深度的期望值. 每次选择一个叶节点,扩展出两个新的叶节点,所以总的深度增加$f_{i-1}+2$ 则$f_i=\frac{(i-1)*f_{i-1}+f_{i-1}+2}{i}=f_…
输入格式 输入仅有一行,包含两个正整数 q, n,分别表示问题编号以及叶结点的个数. 输出格式 输出仅有一行,包含一个实数 d,四舍五入精确到小数点后 6 位.如果 q = 1,则 d 表示叶结点平均深度的数学期望值:如果 q = 2,则 d 表示树深度的数学期望值. p=1 令f(x)表示有x个叶子节点的树的叶子节点平均深度,则 f(x)*x 为叶子节点深度之和 f(x)+2随机选择一个叶子节点展开后增加的深度 f(x)= ((x-1)f(x-1)+f(x-1)+2)/x = (xf(x) +…
题意 初始 \(1\) 个节点,每次选定一个叶子节点并加入两个儿子直到叶子总数为 \(n\),问叶子节点深度和的平均值的期望以及最大叶子深度的期望. \(n\leq 100\) . 分析 对于第一问,根据答案定义状态 \(f_i\) 表示有 \(i\) 个叶子节点的深度和平均值的期望. 考虑对于之前的每一棵树对期望的贡献,记其发生的概率为 \(p\) ,深度和为 \(w\) ,有 \(i-1\) 个叶子节点.贡献为 \(p*\frac{w}{i-1}\) .现在要多选定一个叶子节点有 \(i-1…
题面 luogu 题解 第一问: 设\(f[i]\)表示\(i\)步操作后,平均深度期望 \(f[i] = \frac {f[i - 1] * (i - 1)+f[i-1]+2}{i}=f[i-1]+\frac{2}{i}\) 第二问就比较难受了: \(E(x)=∑_{i=1}^{x}P\) 随机变量\(x\)的期望为对于所有\(i\),\(i≤x\)的概率之和 我们设\(f[i][j]\)表示\(i\)步后,树的深度\(>=j\)的概率 我们每次新建一个根,然后枚举左右子树分配节点情况 \(f…
感觉第一问就非常神仙,还有第二问怎么被我当成组合数学题来做了 首先是第一问 期望具有线性性,于是深度平均值的期望等于深度和的期望值的平均 设\(dp_x\)表示具有\(x\)个叶子节点的树的深度和的期望值是多少 我们发现扩展一个叶子节点的实质将其变成两个深度原来大一的叶节点,所以对整个答案的贡献也就是这个被扩展的叶子节点的深度乘\(2\),再加上\(2\) 比如我们当前扩展的是叶子节点\(1\),那么答案就从\(dep_1+dep_2+...+dep_x\)变成了\(2*(dep_1+1)+de…
题意非常的复杂,考虑转化一下: 每次选择一个叶节点,删除本叶节点(深度为$dep$)的同时,加入两个深度为$dep + 1$的叶节点,重复$n$轮 首先考虑第$1$问,(你看我这种人相信数据绝对是最大的数据,直接$f[i][S]$表示$i$个叶子结点,深度之和为$j$的时候的概率,然后化前缀和化出来...) 对于一个深度为$x$的点,对它操作后,深度增加了$2 * (x+ 1) - x = x +2$ 现在考虑平均的情况,令$f[i]$表示$i$个节点的平均深度,那么$f[i] = \frac{…
https://www.luogu.org/problemnew/show/P3830 具体方法见代码.. 其实挺神奇的,概率可以先算出“前缀和”(A小于等于xxx的概率),然后再“差分”得到A恰好为xxx的概率 话说推了很久“x个叶子节点的树,左子树有y个节点”的概率的dp,推不出来,然后无意间手玩了一下5个叶子节点,发现这个东西其实就等于1/(x-1),跟y没有关系... #include<cstdio> #include<algorithm> #include<cstr…
题目 输入格式 输入仅有一行,包含两个正整数 q, n,分别表示问题编号以及叶结点的个数. 输出格式 输出仅有一行,包含一个实数 d,四舍五入精确到小数点后 6 位.如果 q = 1,则 d 表示叶结点平均深度的数学期望值:如果 q = 2,则 d 表示树深度的数学期望值. 输入样例 1 4 输出样例 2.166667 提示 题解 第一问比较简单,我们设\(f[i]\)表示第\(i\)次扩展的期望深度 那么 \[f[i] = \frac{f[i - 1] * (i - 2) + (f[i - 1…
题目:https://www.luogu.org/problemnew/show/P3830 询问1:f[x]表示有x个叶节点的树的叶节点平均深度: 可以把被扩展的点的深度看做 f[x-1] ,于是两个新点深度为 f[x-1]+1,而剩下的x-2个点平均深度就是f[x-1]: 所以f[x] = [ f[x-1] * (x-2) + (f[x-1] + 1) * 2 ] / x : 整理得到f[x] = f[x-1] + 2 / x : 询问2:f[i][j]表示有i个叶子节点.深度为j的概率:…
题目传送门 Description \(n\le 100\) Solution Problem 1 不难看出,答案就是: \[1+\sum_{i=1}^{n-1} 2/(i+1) \] Problem 2 这个问真的很仙. 可(bu)以(neng) 想到,我们可以设 \(f_{i,j}\) 表示有 \(i\) 个叶子时深度 \(\ge j\) 的概率,可以得到转移式: \[f_{i,j}=\frac{1}{i-1}\sum_{k=1}^{i-1} (f_{k,j-1}+f_{i-k,j-1}-f…
[BZOJ2830/洛谷3830]随机树(动态规划) 题面 洛谷 题解 先考虑第一问. 第一问的答案显然就是所有情况下所有点的深度的平均数. 考虑新加入的两个点,一定会删去某个叶子,然后新加入两个深度为原先叶子\(+1\)的点. 那么新加入的叶子的深度的期望是未加入之前的期望+1,假设\(f_i\)为\(i\)个点的期望. 那么\(f_i=(f_{i-1}*({i-1})-f_{i-1}+2*(f_{i-1}+1))/i=f_{i-1}+2/i\) 含义就是平均的深度乘上点的个数等于深度总和,减…
""" version1.1,2018-05-09 <基于智能优化与RRT算法的无人机任务规划方法研究>博士论文 <基于改进人工势场法的路径规划算法研究>硕士论文 """ import matplotlib.pyplot as plt import random import math import copy show_animation = True class Node(object): ""&qu…
RRT是一种多维空间中有效率的规划方法.它以一个初始点作为根节点,通过随机采样增加叶子节点的方式,生成一个随机扩展树,当随机树中的叶子节点包含了目标点或进入了目标区域,便可以在随机树中找到一条由从初始点到目标点的路径.RRT方法是概率完备且不最优的. function BuildRRT(qinit, K, Δq) T.init(qinit) for k = 1 to K qrand = Sample() -- chooses a random configuration qnearest = N…
RRT快速搜索随机树英文全称Rapid-exploration Random Tree,和PRM类似,也是一种路径规划算法. 和PRM类似,算法也需要随机撒点,不过不同的是,该算法不是全局随机撒点,而是一次撒一个点,然后判断当前搜索树与随机点距离,然后找到搜索树距离随机点最近的节点,向该随机点方向扩展.这里随机点有一定的概率是终点,所以搜索树最终是能够到达终点的. 算法流程如下: 1. 首先确定地图与起始结束点位置,设置搜索树,这里定义了一个随机点列表和一个随机点索引前驱列表代表搜索树. 2.…
题意:中文题,按照题目要求的二叉树生成方式,问(1)叶平均深度 (2)树平均深度 解法:这道题看完题之后完全没头绪,无奈看题解果然不是我能想到的qwq.题解参考https://blog.csdn.net/Maxwei_wzj/article/details/82262755这位大佬的,这里讲下我的理解: 首先是第一问:第一问会简单一些,设f[i]代表叶节点为i的树的叶平均深度,那么因为是平均那么 i*f[i] 就是叶子总深度啦.在叶子深度x下拓展得到的新贡献是 2(x+1)-x=x+2  .那么…
\(\\\) \(Description\) 开始有一棵只有一个根节点的树.每次随机选择一个叶子节点,为他添上左右子节点,求: 生成一棵有\(N\)个叶节点的树,所有叶节点平均高度的期望. 生成一棵有\(N\)个叶节点的树,树高的期望. 约定根节点深度为\(0\). \(N\in [1,100]\) \(\\\) \(Solution\) 果然还是太菜了只会抄题解 一道期望和概率间巧妙转化的好题. \(\\\) 第一问,平均的性质. 考虑每次扩展会随机选择一个叶节点,假设该叶节点的深度为\(d_…
题目描述 输入 输出 样例输入 4 0 1 1 2 2 3 4 Add 1 3 1 Query 0 Query 1 Query 2 样例输出 3 3 2   树链剖分模板题,路径修改子树查询,注意节点编号从零开始,答案爆int. #include<set> #include<map> #include<queue> #include<stack> #include<cmath> #include<vector> #include<…
传送门 树剖板子…… 一个路径加和,线段树上打标记.一个子树询问,dfs的时候记录一下子树的区间就行 // luogu-judger-enable-o2 //minamoto #include<bits/stdc++.h> #define ll long long using namespace std; #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)…
题目链接:https://www.luogu.org/problem/P3833 题目大意:有一颗含有n个节点的树,初始时每个节点的值为0,有以下两种操作: 1.Add u v d表示将点u和v之间的路径上的所有节点的值都加上d. 2.Query u表示当前果树中,以点u为根的子树中,总共有多少个果子? 解题思路:树链剖分板子,具体看代码注释 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; ; int…
Description Input Output Sample Input 4 0 1 1 2 2 3 4 Add 1 3 1 Query 0 Query 1 Query 2 Sample Output 3 3 2 Solution 退役选手打打板子休闲一下QAQ 居然能1A真是不可思议 Code #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<…
对于概率dp,我一直都弄得不是特别明白,虽然以前也有为了考试去突击过,但是终究还是掌握得不是很好,所以决定再去学习一遍,把重要的东西记录下来. 1.hdu4405 Description 在一个 \(1*n\) 的格子上掷色子,从 \(0\) 点出发,掷了多少前进几步,同时有些格点直接相连,即若 \(a\) ,\(b\) 相连,当落到 \(a\) 点时直接飞向 \(b\) 点.求走到 \(n\) 或超出 \(n\) 期望掷色子次数 \(n \leq 100000\) Solution 这道题目有…
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noip前的杂题训练,我也很无奈啊 做完了的扔最后,欢迎好题推荐 这么多题肯定是完不成了,能多做一道是一道吧 DP yyb真是强得不要不要的辣:http://www.cnblogs.com/cjyyb/category/1036536.html [ ] [SDOI2010]地精部落 https://www…
前言 为了不久之后的\(NOIP2018\),我们的停课从今天(\(Oct\ 24th\))起正式开始了. 本来说要下周开始的,没想到竟提早了几天,真是一个惊喜.毕竟明天有语文考试.后天有科学考试,逃过了一劫. 这篇博客记录的便是停课这段时间的经历. 当然,这篇博客中有许多空链接,请谅解. \(Oct\ 24th\) 上午 一场\(NOIP2018\)线下模拟赛,\(AC\)了\(T1\)和\(T3\),\(T2\)悲惨爆\(0\)... .. 下午 花了一个下午写一道\(KD-Tree\)板子…
因为这几天要加油,懒得每篇都来写题解了,就这里记录一下加上一句话题解好了 P4071 [SDOI2016]排列计数   组合数+错排 loj 6217 扑克牌 暴力背包 P2511 [HAOI2008]木棍分割 第一问二分,第二问记$dp[i][j]$为前$i$根砍$j$刀的方案,那么它可以由所有$sum[i]-sum[k]<=ans1$的$k$转移而来,用滚动数组优化空间,用队列的形式优化转移 P1410 子序列 贪心能过(数据水).dp的话,考虑$f[i][j]$表示前面$i$个数的最长上升…