4.17 营业日志

测试,三道题。考试的时候写出了T1,口胡了T3,T2不太会状压

T1:HAOI2018苹果树
题意:最开始有一个点,之后的每一天都会有一个点成为随机一个儿子数不大于二的点的儿子。问 \(s\) 天后这棵树两两节点间的距离和的期望是多少。

\(Solution\) :经过思考可以发现,如果计算每个点的贡献的话,会发现最终总是需要知道树的结构长什么样子,复杂度接受不了,所以只能换一种思路。$\ $ 考虑每一条边的贡献。 首先知道:

\[ans=\sum_{i=(u->v)} siz[u](n-siz[u]) \]

意思是,每条边会把树分成两个点集,每条边对答案的贡献就是两个集合的大小的乘积(乘法原理)。那么接下来尝试枚举每个点的 \(siz\) 求解,简单推式子即可。
代码

T2:九省联考2018一双木棋
状态压缩dp。首先发现,所有放下的棋子都是在左上角,描绘出边界和棋子的轮廓可以发现是一个从左下角到右上角的线(类似曼哈顿距离的那种)。每次放下一个棋子都会使一部分轮廓线向右凸一块。把这个轮廓线按照从左下角到右上角的顺序,向上为 \(1\) ,向右是 \(0\) ,最开始的轮廓的 \(2\) 进制写法是 1111……000(前 \(n\) 个是1,后 \(m\) 个是0),然后每放下一个棋子都会使一个 \(1\) 向右跳一个位置,当最后的二进制数变成 \(000……1111\) 时游戏结束。然后考虑两个人的得分情况,我们只从一个人的角度去考虑,把另一个人的得分看成负数,然后去求和。这个可以用记忆化搜索过掉。
代码

T3一个简单线性规划

posted @ 2021-05-06 19:51  Van-Helsing  阅读(68)  评论(0)    收藏  举报