LibreOJ#3144. 「APIO 2019」奇怪装置 – 题解

主要思路

自己推了三个假的循环,遂奔向题解。

先考虑设循环节为 \(k\),且考虑最终 \(x = 0, y = 0\) 的局势。我们考虑怎样的循环节才能迭代一次、得到同样的 \(x = 0, y = 0\) 的局势。不妨直接带入 \(k\):

\[ x = (k + \lfloor \frac{k}{B} \rfloor) \bmod A, y = k \bmod B \]

Continue reading →

LibreOJ#6374. 「SDWC2018 Day1」网格 – 题解

主要思路

容斥好题!

我们先不考虑 \(k\) 个非法向量的事。先考虑分两维做掉那个跳跃限制,再做掉不动的情况。

对于一维的跳跃限制,以 \(x\) 轴为例,可以做成一个组合数的容斥:

\[ \text{设} f(i) \text{为至少有} i \text{步超过了跳跃限制} \\ f(i) = {R \choose i} {T_x – i(Mx + 1) + R – 1 \choose R – 1} \\ ans_x = \sum_{i = 0}^R (-1)^i f(i) \]

Continue reading →