Raisetsu41's Blog

「I will see your face down here real soon.」

完,我怎么又是简单题调半天。。。

2022-07-21 AtCoder Beginner Contest 261

$\mathbb{A \ B \ C}$

笑死,$A$ 看了 $7min$ 没看懂题,还是在把 $E$ 过了之后才回来补的。
$B$, $C$ 都没啥好说的。

$\mathbb{D \ Flipping \ and \ Bonus}$

link
一眼 $DP$ ,然后写完死活过不了样例,发现题读错了,这个英文题面有歧义。
一个简单的思路,枚举断点,即是硬币朝上的某一次投掷,$dp_{i, 0 / 1}$ 表示第 $i$ 次朝上或朝下,可以平方级别直接转移。
然后调调调搞了半天。

$\mathbb{G \ Many \ Operations}$

link
开始想复杂了,以为是个什么高级玩意儿,可以直接合并位运算的操作,搞了半天,发现不行。
拆开看,哦,懂了,你需要分开考虑每一位的状态,只需要考虑初始值是 $0/1$ ,然后分别记录 $z_{i, j}, o_{i, j}$ ,表示如果初始时第 $j$ 位是 $0/1$ 在经过第 $i$ 次位运算之后的值为多少。
维护答案是,发现当前的答案是从上一层的答案转移下来的,把答案拆成每一位,分别加入贡献就行了。

$\mathbb{Ex}$

link
这个需要一点观察,发现是当键值相同且相邻的两个点可以压成一个,能用 tarjan 在 $\Theta(n)$ 的复杂度里面解决掉,之后需要考虑一个 $dp$ , 定义 $dp_{i,j}$ 表示以当前的 $i$ 出发,走 $j$ 步最远到达的点,需要倍增优化。

简单推一下今天的式子。

2022-07-18

$\mathbb{[NOI2010]能量采集}$

link
$$ \begin{matrix} &\sum_{i = 1}^{n} \sum_{j = 1}^{m} (2 \gcd(i, j) - 1) \\ =&2\sum_{i = 1}^{n} \sum_{j = 1}^{m} \gcd(i, j) - nm \end{matrix} $$
显然,集中尽力化掉 $\sum_{i = 1}^{n} \sum_{i = 1}^{m} \gcd(i, j)$ 即可。
一个朴实的想法是枚举 $\gcd(i, j)$ 的取值。
$$ \begin{matrix} =&\sum_{g = 1}^{\min(n, m)} g \sum_{i = 1}^{\lfloor \frac{n}{g} \rfloor} \sum_{j = 1}^{\lfloor \frac{m}{g} \rfloor} [\gcd(i, j) = 1] \\ =&\sum_{g = 1}^{\min(n, m)} g \sum_{i = 1}^{\lfloor \frac{n}{g} \rfloor} \sum_{j = 1}^{\lfloor \frac{m}{g} \rfloor} \sum_{d \mid \gcd(i, j)} \mu(d) \\ \end{matrix} $$
改变枚举顺序。
$$ \begin{matrix} =&\sum_{g = 1}^{\min(n, m)} g \sum_{d = 1}^{\min(\lfloor \frac{n}{g} \rfloor, \lfloor \frac{m}{g} \rfloor)} \mu(d) \lfloor \frac{n}{gd} \rfloor \lfloor \frac{m}{gd} \rfloor\\ \end{matrix} $$
后面一坨是 $\sqrt{n}$ 可以整除分块做的,总的复杂度是 $\Theta(n \sqrt{n})$。
哦,我是🐖,整除分块都不用,这玩意是个调和级数。
总结:如果我在 4 岁时参加了国赛,我应该能过这道题。

$\mathbb{YY的GCD}$

link
这道题是原来写过的,可以参考 Mobius & Dirichlet Solution Set 的题解,既然今天又碰到了,那就再推一遍。
令所有素数组成的集合为 $\mathbb{P}$ 。

$$ \begin{aligned} & \sum_{i = 1}^{n} \sum_{j = 1}^{m} [\gcd(i, j) \in \mathbb{P}] \\ = & \sum_{p \in \mathbb{P}} \sum_{i = 1}^{n} \sum_{j = 1}^{m} [\gcd(i, j) = p] \\ = & \sum_{p \in \mathbb{P}} \sum_{i = 1}^{\lfloor \frac{n}{p} \rfloor} \sum_{i = 1}^{\lfloor \frac{n}{p} \rfloor} [\gcd(i, j) = 1] \\ = & \sum_{p \in \mathbb{P}} \sum_{d = 1}^{\min(\lfloor \frac{n}{p} \rfloor, \lfloor \frac{m}{p} \rfloor)} \mu(d) \lfloor \frac{n}{pd} \rfloor \lfloor \frac{m}{pd} \rfloor \end{aligned} $$

令 $pd = T$ 。
$$ \begin{aligned} = & \sum_{p \in \mathbb{P}} \sum_{d = 1}^{\min(\lfloor \frac{n}{p} \rfloor, \lfloor \frac{m}{p} \rfloor)} \mu(d) \lfloor \frac{n}{pd} \rfloor \lfloor \frac{m}{pd} \rfloor \\ = & \sum_{T = 1}^{n} \lfloor \frac{n}{T} \rfloor \lfloor \frac{m}{T} \rfloor \sum_{p \mid T} \mu(\frac{T}{p}) \\ \end{aligned} $$
这个玩意是可以不带任何技巧直接 $\Theta(n\sqrt{n})$ 做的。

今天其他几道题太水了,没啥好写的。