zoukankan      html  css  js  c++  java
  • 20210614 模拟赛

    写在前面

    期望得分: (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} imes n! imes m!}{(n+m)!} ]

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

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

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

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

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

    https://www.cnblogs.com/yu-xing/p/11221901.html

    T3

    无向图缩点板子。

    缩点后是一棵树。

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

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

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

    (O(n))

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

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

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

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

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

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

  • 相关阅读:
    Code基础——2.排序
    设计模式——4.装饰模式
    Shader笔记——1.光照基础
    C#笔记——7.序列化与反序列化
    C#笔记——6.反射与特性
    lua小技巧记录--新建对象时重置元表
    发现的lua小技巧记录--在:方法中使用self的技巧
    lua版pureMVC框架使用分析
    在xlua中使用DoTween动画插件
    Unity工程性能优化学习笔记
  • 原文地址:https://www.cnblogs.com/Silymtics/p/14882028.html
Copyright © 2011-2022 走看看