摘要: 很新颖的题 首先观察到 \(m\) 很小,考虑从其入手 如果我们把 \(m\) 个边看做双向边,把连在一起的点看为联通块 那么一个联通块内的点的个数是和 \(m\) 同级的 我们可以对于每个联通块做一遍全源最短路 对于一个联通块内的点对 \((i,j)\) 分情况考虑: 首先如果 \((i,j)\) 阅读全文
posted @ 2021-11-10 20:09 zJx-Lm 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 第一次考场见重构树 我们按点从小到大依次插入 不太好描述,先上码: for(re int i=2;i<=n;i++) { for(re int j=0;j<vec[i].size();j++) { int to=vec[i][j]; if(to<i) { add(i,find(to)); fa[fi 阅读全文
posted @ 2021-11-10 19:52 zJx-Lm 阅读(68) 评论(0) 推荐(1) 编辑
摘要: 很好的期望题,很久之前学长讲的,但现在才填坑 参考了 Autoint's Blog 首先转换一下题意,移动次数其实就是序列逆序对的数量 所以我们实际上是在求序列逆序对数量的期望 我们令 \(P_{i,j}\) 表示位置 \((i,j)\) 上的数为逆序对的期望 则 \[ Ans=\sum_{i=1} 阅读全文
posted @ 2021-11-10 07:27 zJx-Lm 阅读(124) 评论(0) 推荐(0) 编辑