20210614 模拟赛


目录
  • 写在前面
  • 正文
    • T1
    • T2
    • T3

写在前面

期望得分: \(100 + 0 \sim 100 + 40 \sim 100 = 140 \sim 300 pts\)
实际得分: \(100 + 100 + 0 = 200pts\)

考前某二区教练和我们说:

我和三区教练给你们 出了 套题你们做一做昂

结果是 HN 某中学某学生的模拟赛题

评价:

板子题+结论题+板子套板子题
思维难度不是很大(除了T2),许多算法很一眼。

已经把题目搬到 LG 了,大家快去秒掉吧!

T1传送
T2传送
T3传送

caq AK Orz!

正文

T1

矩阵加速板子

T2

把物理老师当做 \(1\),生物老师当做 \(0\)

不考虑同类老师之间的排列,设 \(f_{i,j}\) 表示 \(i\) 个物理老师 \(j\) 个生物老师的合法排列方案。

不难推出转移方程:(都是在合法情况下)

\[f_{i,j} = f_{i-1,j} + f_{i,j-1} \]

然后再乘上老师们的排列方案,得到答案为:

\[\frac{f_{n,m} \times n! \times m!}{(n+m)!} \]

这样明显算不出来,考虑实际意义。

转移方程和过河卒很像,加上那个限制,发现和这个题一样

\[C_{n+m}^m - C_{n+m}^{m-1} \]

直接套用它的结论快速得到 \(f_{i,j}\),代回原式,发现可以化简。

于是得到最终结果 \(\frac{n-m+1}{n+m}\)

T3

无向图缩点板子。

缩点后是一棵树。

\(O(n^2 \log^2 n)\) : 树剖暴力求两点之间的距离,本来考虑树形 DP + 换根,最后没来得及。

\(O(n^2 \log n)\):跑 \(n\) 遍 Dij

\(O(n^2)\):跑 \(n\) 遍 dfs

\(O(n)\)

距离每个点最远的距离,是以它为根时到达所有点的最大深度。

考虑树的直径,以每一个点为根时它的最大深度的点一定在树的直径两端。

因为树的直径的第一步就是这样求的。

然后对两个端点跑两遍 dfs,对于每个点,取到两个端点的距离的最大值即可。

但是这道题的傻逼数据没有保证图是一个连通图,导致我一直调不出来。

这个坑人的数据点是这样的: