用户工具

站点工具


2020-2021:teams:alchemist:2020_nowcoder_multiuniversity_2

这是本文档旧的修订版!


简况

比赛链接

AC 6题,Rank 39th

总结与反思

cmx

主要还是思维问题,EG两题一直在xsy卡题的时候思考,还是没有想出来。另外以后看一道题要把内容共享给队友,节省看题时间

lpy

xsy

题目一定要及时看,比如B题H题看完没多久就做出来了,但是看得很晚,还好极限写出来了H。

要注意随时关注榜单,卡题的时候视情况去开一下其他的题。

要随时与队友进行沟通。

题解

A. XXXX

… by cmx

B. Boundary

所有的圆都会过原点$O$,如果点$A, B, O$三点共圆,那么$OA, OB$的中垂线会相交于圆心。

于是求出所有点与原点连线的中垂线并两两求交点,最后统计交点个数,出现最多的点对应的圆上有最多的点。

需要注意的是,一个圆上如果有$n$个点,那么交点的个数为$\frac{n(n-1)}{2}$

复杂度为$O(n^2\log n)$

by MountVoom

F

求出矩阵,然后行列分别一次单调队列 就可以求出以$(i,j)$为左上角,$(i+K,j+K)$为右下角的正方形的最大值 求矩阵时可以利用gcd优化($(a,b)=(a+b,a)=(a,b+a)$),但我优化了炸内存,没有优化过了

by Hardict

补题

E

线性基为$logN$个,那么$i>19$时$ans[i]=ans[i-2]$

而$i \leq 19$时利用异或卷积计算答案

by Hardict

G. Greater And Greater

好题,可惜没想出来。被数据范围迷惑,以为是分块问题,一开始还傻傻写了个超时方法。赛后看题解发现是bitset,才惊觉为什么一直没往这方面思考。

考虑bitset,对每个Ai求一个长度为m的bitset $S_i$,$S_i[j]=1$当且仅当$A_i\ge B_j$,这样我们发现只要通过下面的式子,就可以求出每个$cur_i$,$cur_i[j]$表示,A从i开始的一段和B从j开始到结尾,都是不小于的。

$$cur_i=(cur_{i+1}>>1|I_m)\&S_i$$

其中I_m是一个只有第m位为1的bitset。这样我们对于每个$cur_i$,求出$cur_i[0]$的和即可。

注意,这里有n个bitset,想要求出这些$S_i$效率似乎有问题,实际上,最多只有$m+1$种不同的bitset。我们排好序,可以求出这几种bitset,以及有哪些i是属于这个bitset。

因此效率为$O(nm/64)$

by cmx

2020-2021/teams/alchemist/2020_nowcoder_multiuniversity_2.1595003505.txt.gz · 最后更改: 2020/07/18 00:31 由 mountvoom