\[\LARGE \rm AGC003-2021.09.06 \]


\[\Large\rm Summary \]

\(\quad\)这场考得不太行,\(\rm AB\) 没啥用,\(\rm B\)\(\rm WA\) 了一发。\(\rm C\) 想了很久才想出来,\(\rm D\) 完全没思路。

\[\Large\rm A-Wanna~Go~Back~Home \]

\(\quad\)我们发现如果有 \(N\),那么必然需要向 \(S\) 走至少一步。所以直接判断 \(N\)\(S\) 是否同时存在或同时不存在即可。\(E\)\(W\) 同理。

\(\quad\)时间复杂度 \(\Theta(n).\)

\[\Large\rm B-Simplified~Mahjong \]

\(\quad\)首先我们可以发现,若 \(a_i,a_{i+1}>2\),那么它们肯定可以在自己这一列分别消掉 \(2\) 个,这样一定是不比一起消掉劣的。

\(\quad\)然后我们可以发现,如果当前 \(a_i\) 在自己这一列消完之后还剩下 \(1\) 个,如果它能与 \(a_{i+1}\) 配对,即 \(a_{i+1}>0\),那么就一定会与 \(a_{i+1}\) 配对。因为这样会使答案增加 \(1\),而只会令 \(a_{i+1}\) 被消耗 \(1.\) 如果我们要在枚举到 \(a_{i+1}\) 时再使答案增加 \(1\),则需要消耗 \(2\),故能消则消也是不比不消劣的。

\(\quad\)有了上面两个结论,直接按从小到大的顺序扫一遍即可。

\(\quad\)时间复杂度 \(\Theta(n).\)

\[\Large\rm C-BBuBBBlesort! \]

\(\quad\)首先可以观察到如下性质 :

  • 操作 \(1\) 相当于交换两个相邻的点,易知改变了它们两个的奇偶性。
  • 操作 \(2\) 相当于交换两个距离为 \(2\) 的点,易知未改变它们两个的奇偶性。
  • 将数值离散化以后的值显然为它们应该在的位置,设 \(a_i\) 在离散化以后变成了 \(p_i\),那么如果 \(i\equiv p_i\pmod 2\),那么一定可以只通过操作 \(2\)\(a_i\) 移回 \(p_i.\)
  • 对于 \(p_i\not\equiv i\pmod 2\) 的数值,\(i\equiv 0\pmod 2\)\(i\equiv 1\pmod 2\) 的数量是一样的。

\(\quad\)于是,我们一定可以将 \(i\not\equiv p_i\pmod 2\) 的点移到两两相邻的位置,然后用操作 \(1\) 将它们交换,使它们奇偶性正确,最后用操作 \(2\) 将所有数还原。

\(\quad\)由上述分析可知,答案即为 \(p_i\not\equiv i\pmod 2\) 的点的数量除以 \(2.\)

\(\quad\)时间复杂度 \(\Theta(n\log n).\)

\[\Large\rm D-Anticube \]

\(\large\rm Part1\)

\(\quad\)首先我们可以发现,如果将每个数质因数分解,那么两个数不能同时选,当且仅当它们所有质因数的指数之和都为 \(3\) 的倍数。于是如果知道一个确定的 \(x\),我们就可以计算出唯一的 \(y\),满足 \(xy=z^3,z\in Z^+.\)

\(\quad\)于是对于每个 \(x\) 求出其对应的 \(y\),取数量多的那个即可。需要注意的是,本来就是完全立方数的数只能取一个。

\(\quad\)于是我们就得到了一个 \(\Theta[n(\sqrt{w}+\log n)]\) 的做法。复杂度瓶颈在分解质因数,如果使用 \(\rm Pollard-Rho\) 算法分解质因数则可以做到 \(\Theta(nw^{\frac{1}{4}}+n\log n)\)可以通过此题。

\(\large\rm Part2\)

\(\quad\)考虑首先剔除所有数中的立方因子。我们发现完全立方因子形如 \(k^3\),有 \(k\leqslant \sqrt[3]{w}\),于是我们只需要枚举 \([1,\sqrt[3]{w}]\) 中的质数即可。

\(\quad\)如果剔除立方因子后剩下了 \(1\),那么说明这个数本身就是一个完全立方数,将这些数去掉,答案的初值设为 \(1.\)

\(\quad\)考虑记 \(a\) 在去除立方因子后小于 \(\sqrt[3]{w}\) 的因子的乘积为 \(x\),记 \(a\) 在去除所有 \([1,\sqrt[3]{w}]\) 中因子后的数为 \(s.\) 我们发现 \(s\) 最多有两个质因子,于是考虑进行分类讨论 :

  • \(s=1\),则说明这个数只有 \([1,\sqrt[3]{w}]\) 中的质因子,于是将 \(x\) 放进集合 \(S\) 中并暴力分解质因数。
  • \(s=p,p\in [\sqrt[3]{w},\sqrt{w}]\cup Prime\),则将 \(px\) 放进 \(S\) 中并暴力分解质因数。
  • \(s=p^2,p\in [\sqrt[3]{w},\sqrt{w}]\cup Prime\),则将 \(p^2x\) 放进 \(S\) 中并暴力分解质因数。
  • 剩下的情况仅有两种,即 \(s=p',p'\in [\sqrt{w},w]\cup Prime\)\(s=pq,p,q\in [\sqrt[3]{w},\sqrt{w}]\cup Prime\),显然这两种情况的对应数都大于 \(w\),故可以直接加入答案。

\(\quad\)对于 \(S\) 中的数,我们已经将其质因数分解,于是可以使用 pbds 中的 hash_table 存储,遍历所有 \(S\) 中的元素,如果它的数量大与其对应数的数量,则将其数量加入答案。

\(\quad\)时间复杂度 \(\Theta(n\frac{\sqrt[3]{w}}{\log w}+n\log n).\)

$\rm NEVER~~STOP~~!~!~!$