Mysterious Light
给定光源,求按照题意规则反射的总距离
很容易观察出该题的重复子结构,每次可以看作从一个平行四边形的右下角向外发射,不妨设 \((a,\ b)\) 来表示平行四边形的两边即初始状态有 \((n-x,\ x)\)
我们尝试用 \((a,\ b)\) 推出下一个平行四边形的状态,显然 \[ (a,\ b)\rightarrow \begin{cases} \ (a-b,\ b),\ a > b\\\\ \ (a,\ b-a),\ b > a \end{cases} \]
显然终止状态为二元组其中一个变为 \(0\) 时
设 \(f(a,\ b)\) 为 \((a,\ b)\) 到达终止状态的路径则有
\[ f(a,\ b)\ =\ \begin{cases} 2b+f(a-b,\ b),\ a > b\\\\ 2a+f(a,\ b-a),\ b > a\\\\ a,\ a\ = b \end{cases} \]
很容易观察到这是一个更相减损的过程并用辗转相除优化
进一步的,我们观察最后路径会发现,不重不漏的走过所有轨迹三角形下面的边的路径总长度为 \(n-(n,\ x)\),这样即可快速的出答案
1 |
|
Shorten Diameter
删除一些点,使树的直径小于等于K,当且仅当删除某点不会对树的联通性产生影响时才可以删除,求最少点数
我们注意到 \(n\) 的范围,这道题一定是一道枚举,观察到最终的树一定存在一个中心,且当 \(n\) 是奇数时,最终中心是一条边,\(n\) 是偶数时,最终中心是一条边,枚举中心即可
1 |
|
Arrays and Palindrome
给定数列 \(A\) 并给 \(A\) 进行重排序,并构造数列 \(B\),满足 \(\sum_A=\sum_B\) 并确定两种字符串的回文串划分使得字符串只能由同种字符构造
通过手算样例过程中的推理建成图论模型,注意到这是一个一笔画问题,且 \(A\) 中奇数个数不超过 \(2\),模拟构造即可
1 |
|
BBQ Hard
给定数对 \((a,\ b)\) 求 \(\sum_{i=1}^n\sum_{j=i+1}^n\binom{a_i+b_i+a_j+b_j}{a_i+a_j}\)
考虑 \(\binom{a_i+b_i+a_j+b_j}{a_i+a_j}\) 的几何意义,即从 \((0,\ 0)\) 向上或向左到达 \((a_i+a_j,\ b_i+b_j)\) 的方案数,所以不妨平移一下即有 \((-a_i,\ -b_i)\) 到 \((a_j,\ b_j)\) 的方案数, \(O(n^2)\) 的 \(DP\) 即可
1 |
|
Wide Swap
给定排列 \(P\),当且仅当 \(i,\ j\) 满足 \(|p_i-p_j|=1\) 且 \(|i-j|\ge k\) 是可以交换 \(p_i\) 和 \(p_j\) 求最终字典序最小的排列
直接用题干的条件做极其困难,所以有一种十分启发性的想法
我们把下标和权值交换位置,即构造序列 \(q_{p_i}\ =\ i\) 我们发现这样构造拥有十分好的性质
首先交换就变成当 \(|q_i-q_{i+1}|\ge k\) 时交换 \(q_i\) 和 \(q_{i+1}\) 所以对于 \(q_i\) 而言,\(q_j\in\ [q_i-k+1,\ q_i+k-1]\) 永远不会在它前面
其次,最终要求的字典序最小可以理解为下标尽量小,权值尽量小,拓扑排序过程贪心即可
同时我们手算样例的过程中发现建图可以优化边数,用线段树维护偏序即可
1 |
|