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,对于每个点,取到两个端点的距离的最大值即可。
但是这道题的傻逼数据没有保证图是一个连通图,导致我一直调不出来。
这个坑人的数据点是这样的: