正题

题目链接:https://www.luogu.com.cn/problem/CF1540B


题目大意

nnn个点的一棵树,开始随机选择一个点标记,然后每次随机选择一个与被标记点连边的点标记,按照标记顺序排列,求期望逆序对数。

1≤n≤2001\leq n\leq 2001≤n≤200


解题思路

显然是考虑两个点(x,y)(x,y)(x,y)产生的贡献。

枚举根,然后两个点到根路径上公共的部分没有用,考虑不公共的部分一个长度为nnn,另一个长度为mmm,假设nnn先标记,此时我们可以枚举nnn标记的时候mmm还有多少个没标记的,概率就是
12∑i=0m−1(n−1+ii)12n−1+i\frac{1}{2}\sum_{i=0}^{m-1}\binom{n-1+i}{i}\frac{1}{2}^{n-1+i}21​i=0∑m−1​(in−1+i​)21​n−1+i

这个显然可以用dpdpdp进行O(n2)O(n^2)O(n2)预处理。

然后在LCALCALCA处暴力枚举点对就好了,时间复杂度:O(n3)O(n^3)O(n3)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=210,P=1e9+7;
struct node{ll to,next;
}a[N<<1];
ll n,tot,cnt,f[N][N],ls[N],v[N],dep[N],inv[N],ans;
void addl(ll x,ll y){a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;return;
}
void calc(ll x,ll fa,ll fr,ll L){v[++cnt]=x;ans+=x<fr;for(ll i=1;i<=L;i++){int n=dep[x]-dep[fr];int m=dep[v[i]]-dep[fr];if(v[i]>x)swap(n,m);(ans+=f[n-1][m-1]*inv[2]%P)%=P;}for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(y==fa)continue;calc(y,x,fr,L);}return;
}
void solve(ll x,ll fa){dep[x]=dep[fa]+1;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(y==fa)continue;solve(y,x);}cnt=0;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(y==fa)continue;calc(y,x,x,cnt);}return;
}
signed main()
{scanf("%lld",&n);inv[1]=1;for(ll i=2;i<=n;i++)inv[i]=P-inv[P%i]*(P/i)%P;f[0][0]=1;for(ll i=0;i<=n;i++)for(ll j=0;j<=n;j++){if(!i&&!j)continue;f[i][j]=((i?f[i-1][j]:0)+(j?f[i][j-1]:0))*inv[2]%P;}for(ll i=0;i<=n;i++)for(ll j=1;j<=n;j++)(f[i][j]+=f[i][j-1])%=P; for(ll i=1,x,y;i<n;i++){scanf("%lld%lld",&x,&y);addl(x,y);addl(y,x);}for(ll i=1;i<=n;i++)solve(i,0);printf("%lld\n",ans*inv[n]%P);return 0;
}

CF1540B-Tree Array【数学期望,dp】相关推荐

  1. CF1540B Tree Array(期望,dp)

    解析 关于合理的实现 这题卡在最后的小破dp是我没想到的 一开始看到200的数据范围就不禁笑出了声 lca直接On求! 然后就开始大力分类讨论 然后就卡在了一个问题上 两个栈AB,分别有a和b个元素, ...

  2. 期望dp ---- B. Tree Array 思维+期望dp 逆序对期望数

    题目大意 题目大意: n(n≤200)n(n\leq200)n(n≤200)个节点的树.初始的时候,等概率随机选择一个点标记,接来随机选择一个与标记点相连的未标记点来标记,直到所有的点都被标记.根据点 ...

  3. CF1267G-Game Relics【数学期望,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/CF1267G 题目大意 给出nnn个物品,你可以进行如下操作 花费xxx获得随机一个物品. 花费cic_ici​获得 ...

  4. CF280C-Game on Tree【数学期望】

    正题 题目链接:https://www.luogu.com.cn/problem/CF280C 题目大意 nnn个点的一棵树,每次选择一个没有染色的点把它和它的子树染黑,求期望全部染黑的步数. 解题思 ...

  5. P3830-[SHOI2012]随机树【数学期望,dp】

    正题 题目大意 开始的时候一个点,然后等概率随机选一个叶子节点展开成两个,求nnn个叶子节点的树的叶子节点平均深度和最大深度期望. 解题思路 平均深度很好求,因为每展开一个,叶子节点总深度就加上个2. ...

  6. P1850-换教室【数学期望,dp,Floyd】

    正题 题目大意 一张图,nnn次,每次在cic_ici​上课,可以申请换课室到did_idi​,成功概率kik_iki​.求最短需要走的路径的期望长度 解题思路 先FlodyFlodyFlody预处理 ...

  7. CF708E-Student‘s Camp【数学期望,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/CF708E 题目大意 有n∗mn*mn∗m的矩形网格,然后每次每行最左边和最右边的格子各有p=cdp=\frac{c ...

  8. 聪聪和可可(记忆化dp+数学期望)

    emmmm 输入格式 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下 ...

  9. 数学期望和概率DP题目泛做(为了对应AD的课件)

    题1: Uva 1636 Headshot 题目大意: 给出一个000111序列,注意实际上是环状的.问是0出现的概率大,还是当前是0,下一个还是0的概率大. 问题比较简单,注意比较大小: A/C & ...

最新文章

  1. oracle10g sql跟踪,SQL性能的度量 - 语句级别的SQL跟踪autotrace
  2. “人工智能治理公共服务平台”在2020年中关村论坛发布
  3. HDU 1231 最大连续子序列
  4. APOC 15 Years Celebration
  5. C# webBrowser与javascript互调
  6. python爬虫搜特定内容的论文_python基于BeautifulSoup实现抓取网页指定内容的方法...
  7. velocity学习(2)
  8. 良性计算机病毒对计算有没有危害机系统,154、计算机病毒有良性和恶性之分,其中, – 手机爱问...
  9. LSGO软件技术团队2015~2016学年第九周(1026~1101)总结
  10. java ocsp请求_java – 客户端证书上的OCSP吊销
  11. leetcode:Excel Sheet Column Number
  12. webpack中file-loader和url-loader的关系
  13. 3.OSPF协议及链路状态算法
  14. 2000,XP中显示器和系统匹配的问题?
  15. 《OpenGL超级宝典第五版》Windows + VS2019配置
  16. java Session缓存
  17. NXP的CLRC663和ST的M24LR04通信时所遇到的问题
  18. IBus输入法安装和设置
  19. Web UI设计基础
  20. 添加五笔输入法(默认的)windows sever 2012 r2

热门文章

  1. python self 值自动改变,在python中对self的理解
  2. 实现图片打乱_疫情过后,是否打乱了你前进的脚步?面对现状,你将如何开展新的征程?...
  3. makefile obj文件路径_Makefile一问:如何修改.o输出文件的输出路径 Linux/Unix社区 / 程序开......
  4. 怎样安装php52-71,CentOS如何安装PHP5和PHP7
  5. java proguard 使用_一步步教你使用Proguard混淆Java源代码
  6. apk源码查看工具_如何查看Linux命令工具的源码?
  7. java树算法_Java数据结构算法(三)树
  8. python是用来初始化_python的初始化运行了哪些?
  9. vscode代码运行时间工具_10款实用的VSCode插件提升你的编辑体验 | 第98期
  10. [mybatis]Getting Started