Day 8.26

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day 8.26相关的知识,希望对你有一定的参考价值。

第一次用LaTeX

T1

判断两节点间的父子关系

这道题恰好是我以前给自己出的题,没想到这次居然真的碰上了

大部分人都用LCA来做,但是我有更好的方法$O(n)$

DFS的时候标记每个节点的DFS序$dfn[i]$,再标记该节点的子树中所有点DFS序的最大值$sub[i]$

如果$dfn[y]<dfn[x]\leq sub[y]$,那么说明x一定在y的子树中

T2

A,B两组各有n个人,他们的实力值分别为$a_i$、$b_j$,两组之间随机比赛,求a组得分减b组得分的数学期望,保留一位小数

表达式大概长这个样子:

$$\frac{\sum_{i=1}^{n}\sum_{j=1}^{n}(a_i-b_j)^2}{n}$$

只观察分子,变形得到

$$\sum_{i=1}^{n}\sum_{j=1}^{n}(a_i^2-2a_ib_j+b_j^2)$$

当$a_i<b_j$的时候应改为$-(a_i^2-2a_ib_j+b_j^2)$

注意公式里面的$a_i$,$b_j$能被提出来,所以里面的循环可以直接预处理

把B中的n个人按$b_i$排序,然后按$b_i$维护$b_i$和$b_i^2$的前缀和

遍历A中元素时只需要把和小于$a_i$的人比赛的部分取正(用前缀和求),大于$a_i$的人比赛的部分取负(用总和减前缀和),把结果求和再除以n就行了

最后记得答案要*10放在long long里,再在/10和%10的部分中间添上小数点

而我把答案*100之后从long long转换到了double里再/100,本来以为能在保证精度的条件下偷个懒,结果没想到答案在double里根本存不下,丢了50分

T3

组合数学,好像还要用容斥原理,不是太懂

以上是关于Day 8.26的主要内容,如果未能解决你的问题,请参考以下文章

8.26-4 Linux文件管理

《DSP using MATLAB》Problem 8.26

8.23-8.26作业

8.26函数相关练习

8.26 一周学习总结

上周热点回顾(8.26-9.1)