省选测试16
A.gcd和lcm
题意:T次询问,给定n,m,a,求\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)[gcd(i,j)<=a]\)。T<=1e4,n m a<=1e5
莫比乌斯反演,化下式子。
\(\sum\limits_{T=1}^{n}S(\frac{n}{T})S(\frac{m}{T})\sum\limits_{d|T,d\in[1,a]}\frac{T^2}{d}\mu (\frac{T}{d})\)
内层和给出的a有关
类似数表那题,离线后按a排序,用树状数组动态维护前缀和即可。
复杂度\(O(T\sqrt n logn+alnnlogn)\)
B.平面图
题意:给出n个点平面图和q次询问,支持删边后查询连通块数和询问某两个点是否在同一连通块内,边按照顺时针方向给出。[强制在线]。n<=1e5,q<=2e5
一个可以用来打35pts暴力的性质,n个点的平面图边的上限是3n-6。
正解:%wxy说的这题特意给顺时针限制一定有猫腻。
考虑平面图转对偶图,这样的话平面图某连通块断开相当于在对偶图上形成了一个环。
这样第一问就可以直接并查集维护了。
对于第二问,可以启发式分裂,对于新形成的较小的连通块暴扫更新标记。
实现的话,因为是无向图,可以先钦定每条给出边都代表了其右边的区域,并赋予编号。
建图可以枚举中间点,然后把相邻的两条边(一正一反,注意首尾边界)的编号用并查集合并。
判断连通块大小可以bfs,当然不能一次拓展所有出边。开两个队列,两端每次都只拓展一个点,最先为空的较小,这样判断的代价是较小的块的大小。(没初始化变量WA20多次...)
C.路径
咕...