• NOI2021 部分题解


    圆梦,个人认为题目难度:D1T1-D2T1-D1T2-D2T2-D1T3-D2T3。

    这届 NOI 往前五年以内最烂稳了,往后不知道有没有更烂的。——p_b_p_b

    D1T1 轻重边

    Solution 听说被喷了?不过个人认为还可以。

    首先如果直接按照轻重边的定义写的话,不大可能写的出结果。

    考虑转化问题,比如说,时间戳?

    为每个点打上一个时间戳,一条边被称为轻边,当且仅当两个点的时间戳不同。

    那么,操作一就可以变为一次树上路径覆盖,也就是覆盖为一个新的时间戳。

    操作二拍平到序列上,就是不同颜色段个数。

    初始化要在开始的时候对每个点打不同的时间戳,这样就可以使每条边都是轻边。

    直接树链剖分,用线段树维护一下,时间复杂度 \(O(n\log^2n)\)

    D1T2 路径交点

    Solution $n_1=n_k$ 与 $n_1\le 100$ 的限制,不由得想到矩阵乘法。

    事实上,本题的解法其实比较简单,考虑将邻接矩阵乘起来并求行列式。

    然后?没了。你问我为什么是对的,可以使用 LGV 引理证明。

    引理:交点的奇偶性可以对应排列的奇偶性,证明吗,不会。

    那么就可以直接丢到 LGV 引理上来证明了。

    时间复杂度 \(O(n^3)\)

    D1T3 庆典

    Solution 发现同一个 SCC 中的点是互达的,也就是说,如果我能访问一个 SCC 中的任意一个点,则必然也可以访问其他这个 SCC 中的点。

    直接缩点,然后会缩出一个 DAG,随便选取一个 DAG 的生成树,其实选节点标号尽量大的是绝对对的。

    现在考虑询问,容易发现每次涉及到的点很少,直接建出虚树,这个虚树的点数会很少,我们直接在上面添加上加的边。

    如果,一个虚树上的点,既可以被起始点 \(s_i\) 到达,又可以在虚树的反树上被终止点 \(t_i\) 到达,则这个点被称为好点。

    如果一条边的两边均是好点,那么这条边上的点都是好点。

    最终的答案即为好点的权值和,时间复杂度 \(O(n\log n+q\log n+\sum k\log n)\)

    注意本题的实现上需要卡常,建议不要使用倍增 LCA,如果你倍增 LCA 卡过去了那我请你抽烟。

    D2T1 量子通信

    Solution 容易发现字典是随机的,同时一共是 $256$ 位,最大混淆值只有 $15$。

    \(256\) 位的 \(01\) 串分段成 \(16\) 段,如果一个串被混淆了,那么这 \(16\) 段至少有一段不变,找出这一段不变的,对于这一段找出字典中的串,暴力对比即可。

    好像挺一句话的,不过就这样。

    D2T2 密码箱

    Solution

    公式其实无约分的必要,所以直接考虑分别计算分子和分母,考虑使用矩阵维护。

    所以考虑矩阵刻画操作,比如说思考加上一个 \(a_i\) 有什么影响。

    \[\frac{a'}{b'}=\frac{1}{a_i+\frac a b}=\frac{b}{a_i\times b+a} \]

    也就是说 \(a'=b\)\(b'=a_i\times b+a\)

    也就是:

    \[\begin{bmatrix} a' \\ b' \end{bmatrix} = \begin{bmatrix}0 & 1 \\1& a_i \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} \]

    那么我们就可以用矩阵刻画求答案了,考虑刻画 WE 操作。

    W 操作:\(a_k\to a_k+1\):考虑构造一个矩阵 \(A\) 使得 \(\begin{bmatrix}0 & 1 \\1& a_k \end{bmatrix}A=\begin{bmatrix}0 & 1 \\1& a_k+1 \end{bmatrix}\)

    不难构造出 \(A=\begin{bmatrix}1 & 1 \\0& 1 \end{bmatrix}\)

    之后是 E 操作,要分 \(a_k>1\)\(a_k=1\) 两种情况。

    只讨论 \(a_k>1\) 的情况,类上,构造出给末位减一的矩阵 \(\begin{bmatrix}1 & -1 \\0& 1 \end{bmatrix}\)

    再进行添加,添加两个 \(\begin{bmatrix}0 & 1 \\1& 1\end{bmatrix}\),乘起来得 \(\begin{bmatrix}0 & -1 \\1& 2\end{bmatrix}\)

    猜测另一种情况也是一样的,验证出也是一样的。

    那么直接维护矩阵连乘积,矩阵反转积,矩阵翻转积,矩阵翻转反转积。

    直接 FHQ 硬上,时间复杂度 \(O(q\log n)\)

    卡常小 trick:循环展开矩阵乘法。

  • 相关阅读:
    30款超酷的HTTP 404页面未找到错误设计
    java与java学习路线
    程序员最核心的竞争力
    群智能优化算法-测试函数matlab源码
    如何用Latex合并多个pdf文件?
    Latex--TikZ和PGF--高级文本绘图,思维绘图,想到--得到!
    学无止境 气有浩然
    Latex中定义、定理、引理、证明 设置方法总结
    WeUI
    微信JS SDK Demo 官方案例
  • 原文地址:https://www.cnblogs.com/cnyzz/p/15411465.html
Copyright © 2020-2023  润新知