<span>省选模拟4 题解</span>

A. 点点的圈圈

因为题中保证的特殊性质,容易发现圆之间的关系形成树形结构。

对于每棵子树,选择树的根或者累计所有子树的答案。

问题在于建图,容易发现这个可以用KDTree优化。

考虑将所有的点建在KDTree上。

用每个点的圆覆盖KDTree,当完全覆盖时直接塞入对应点的vector中。

之后DFS一遍KDTree,同时用一个set维护祖先链上所有的vector的集合。

set所表示的集合即能覆盖该点的所有的圆。

对于KDTree中每一个点,直接在set中查后继就可以找到他的父亲。

 

B. 点点的计算

根据大神的一番推导证明,可得原式$=lcm_{i=n-k+1}^n i$

考虑求出一个数组$b_{i,j}$,使得$\prod_{i=n-k+1}^{n} b_{n,i}=lcm_{i=n-k+1}^n i$,即每向左一步的增量。

问题在于如何通过$b_{n-1}$推出$b_n$。

直接令$b_{n}=b_{n-1}$,$b_{n,n}=n$,然后发现前面一些贡献出错了。

对于前面的$b_{n,i}$中含有$n$的一些质因子,统计重复了,所以不断乘逆元消掉。

这个玩意可以直接用一些栈来维护。

为了在线的回答询问,将这个数组通过可持久化线段树实现就好了。

容易发现取$lcm$对应着指数取$max$。

所以这个做法实际上是对这个指数最值的差分,实际上与$zkw$线段树维护区间最值的方法有异曲同工之妙。

 

C. 点点的最大流

最大流=最小割。

对于树上的情况,直接树剖维护最小值。

对于每个点只在一个简单环上,直接缩边双。

还是通过树剖的思想,只要维护出重链上经过这个简单环的答案放在树剖结构中。

对于其它答案,暴力通过线段树查询就好了。

然而这个做法特判太多了,有点恶心。

所以偷了大神$G$_$keng$的做法。

考虑环上的最小边一定被割,所以只要把最小边累加到其他边上。

直接在原树上割掉最短边,仍然维护树的结构。

因为要修改,所以用$lct$维护一下就好了。

数据确实有锅,哭了。

全部评论

相关推荐

01-05 09:14
同济大学 Java
不要盒我呀:我要是9✌🏻我就选保研,保研了大四再找实习,实习之后,如果觉得自己不适合互联网工作模式,还能有其他选择,如果实习后决定了走互联网,也能提升学历提高竞争力
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2025-12-17 16:48
今天九点半到公司,我跟往常一样先扫了眼电脑,屁活儿没有。寻思着没事干,就去蹲了个厕所,回来摸出手机刷了会儿。结果老板刚好路过,拍了我一下说上班别玩手机,我吓得赶紧揣兜里。也就过了四十分钟吧,我的直属领导把我叫到小隔间,上来就给我一句:“你玩手机这事儿把老板惹毛了,说白了,你可以重新找工作了,等下&nbsp;HR&nbsp;会来跟你谈。”&nbsp;我当时脑子直接宕机,一句话都没憋出来。后面&nbsp;HR&nbsp;找我谈话,直属领导也在旁边。HR&nbsp;说我这毛病不是一次两次了,属于屡教不改,不光上班玩手机,还用公司电脑看论文、弄学校的事儿。我当时人都傻了,上班摸鱼是不对,可我都是闲得发慌的时候才摸啊!而且玩手机这事儿,从来没人跟我说过后果这么严重,更没人告诉我在公司学个习也算犯错!连一次口头提醒都没有,哪儿来的屡教不改啊?更让我膈应的是,昨天部门刚开了会,说四个实习生里留一个转正,让大家好好表现。结果今天我就因为玩手机被开了。但搞笑的是,开会前直属领导就把我叫去小会议室,明明白白告诉我:“转正这事儿你就别想了,你的学历达不到我们部门要求,当初招你进来也没打算给你这个机会。”合着我没入贵厂的眼是吧?可我都已经被排除在转正名单外了,摸个鱼至于直接把我开了吗?真的太离谱了!
rush$0522:转正名单没进,大概率本来就没打算留你
摸鱼被leader发现了...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务