笛卡尔树
lushanlushan0026
退役acmer,准研究生
展开
-
HDU 6305 笛卡尔树+求期望
首先这个题要分析不少东西: B数组是取0~1内的实数 任意两个元素相等的概率为0 所以我们可以认为 B数组的每个元素都不相等 可以看作全排列 对于合法序列B 其元素的期望值为1/2 (0~1上的均匀分布) 所以序列的期望值为 n/2 A和B满足题目条件 当且仅当 A和B的笛卡尔树同构 而全排列总共有种 其中满足同构的有 所以同构的概率为 综上所述 最终的答案为 #include<bits/stdc++.h> using namespace std...原创 2020-07-10 21:03:53 · 324 阅读 · 0 评论 -
笛卡尔树模板
温馨提示: 这是大根堆的笛卡尔树 struct DCR{ int ls[N],rs[N],st[N],num,rt; void init(){ for(int i = 1; i <= num; i++) ls[i]=rs[i]=0; } void build(){ int z=0; for(int i = 1; i <= num; i++){ while(z&&a[i]>a[st[z]]) ls[i]=st[z--]; if(z).原创 2020-07-10 20:27:48 · 142 阅读 · 0 评论