12 2023 档案
摘要:ARC167D 看到排列并且有 ,就可以直接建出图来,显然是若干个不相干的环。 如果不求字典序最小,就可以直接不在同一个环中的 直接交换就可以了,因为它要求了最小化操作数。如果求字典序最小,直接从前往后扫一遍,可以用 set 维护不在这个环中且 \(j>i
阅读全文
摘要:P6370 暴力是很容易的,可以直接搜索。 发现可以直接对暴力进行优化。每次有一个地方变为 O 后,重构代价太大,设这个坐标为 ,同时维护一个类型为 pair<int, int> 的 数组表示将球放在第 列第一行的时候,最后到达的位置。再用一个 \(pa
阅读全文
摘要:P5513 容易发现,每次等价于对一个二进制数进行操作。但是这个二进制数长为 ,即需要高精。但是这样支持加一和减一是复杂度会退化为 ,有一个很正常的做法就压位,仿照 bitset 的做法进行操作,复杂度 \(\mathcal{O}(\frac{n ^
阅读全文
摘要:ARC105E 正向考虑是很难的,从结果入手,发现最后一定是分别包含 , 的两个完全图。 考虑表示出这两个人一共加了多少边: , 表示点 所在集合的大小。 由于是判断先手还是后手必胜,所以只需看结果对
阅读全文
摘要:P9032 考试题。 发现 的值是若干个相同的段,且段数很少,因为每次取 至少会将值域变为原来的一半。所以段数是 的。 然后就可以从小到大枚举左端点,然后枚举 的值,找的是最远的满足 \(\gcd(a_l,\d
阅读全文
摘要:CF1896D 如果只有单次询问其实可以双指针,但是这个难以进行拓展。 考虑找点性质。 发现 ,从值域上下手。发现若存在和为 的方案,则一定有和为 的方案,因为可以直接 或 。 然后就变为找最大的和为奇/
阅读全文
摘要:P4338 先考虑怎么安排崛起的先后顺序最优。 但是发现好像没有一个很好的顺序去进行崛起,并且由于 的值域会很大,所以即使知道顺序应该也会难以进行维护。 转换一下方向,正难则反。考虑每个点的贡献,但是颜色不同时只会算一次,所以要钦定是哪一个点造成的贡献。令当前考虑的点为 ,
阅读全文