cometoj-13
淦。
Skip 掉 A ,直接开 C1 。
一看卧槽搜索题,果然简单,然后码,然后码挂了,调了一波,在 8min AC 。
然后既然做了 C1 那就继续看 C2 嘛,
一看卧槽煞笔题,果然简单,然后码,然后没码挂,交了一波,
TLE 了 4 个点。。。
回去看 A ,卧槽果然签到题,花 2min A 了。
然而对于 C2 还是一脸懵逼,后来理性分析了复杂度上界,发现用 set 多了个
log ,
想着怎么撸掉这个 log ,卧槽并查集不就行了,几乎重构了一遍,在 41min AC
。
说起来我第一个想到的是用 set
的原因是做过策爷的“基础排序算法练习题”,
那里维护有效点对的方式就是用 set + 二分。
然而这里特殊一点,用过的点不会在出现,直接并查集就好了。
学傻了.jpg
开 B 。
一看卧槽模拟题,果然简单,然后码,然后交 WA
了,发现没清除头的位置(忘记测样例 3 了),
改了后在 55min AC 。
看 D 。
一看卧槽二项式定理 + 单位根反演板子题,果然不难,然后码,然后犯煞笔错误,调到 1h21min 才 A 。
不过 D
的难点想必不在二项式定理和单位根反演(因为这太裸了),
难点在于给定的 a 在模数任意的情况下可能是非二次剩余,不能开根。
然而只要会求二次剩余,就不难想到把 \(\sqrt{a}\)
当做虚数单位进行扩域来做复数运算。
还好我前几天才学二次剩余
话说我一直调的一个错误竟然是复数乘法中的一个乘号打成了加号,一个字符调一年。
对于剩下的 E, F ,就彻底凉了。
剩下 1h40min 都在肝 E, F ,然而并没有什么卵用,
E 题有想法,但是实现巨巨巨麻烦,况且我计算几何渣的一批,就弃了。
F 题看上去是个神奇数据结构题,不会,告辞。
在 1h21min 的时候是 rank31 ,在最后比赛结束仍然狗在 rank33
(可见 E, F 毒瘤) 。
并没有拿到裙子,自闭了
update on 10.26:
E, F 都改完了, E
的正解在赛时其实就想到了,但是苦于没有实现思路,计几基础太差。
F
分块好题,赛时也的确想到了分块,对于区间左移也想到了块内记偏移量,但是由于对于偏移量的维护没有思路就弃了。
事实上这个偏移量其实很好搞,块内维护一个环状结构而不是普通的链状结构(我猜链状大概也能做,不过要动态增删点之类的?),
这样在整个块左移的时候只需把头指针向右移一个就可以简单地做到整体左移。