AHOI2022
-
首先缩环,每个环有个数量, 对于有个点交换就是两个环合起来,然后求 lcm
-
这里需要知道一个很简单但是很重要的结论:对于
,不同的 只会有 的数量级 -
所以先去重一下,然后暴力枚举,那么就是
的了 -
那么现在就是要维护一个集合的 lcm ,支持删除添加
-
考虑质因数分解,那么就是对于每个质数的幂次维护最大
-
质因数的个数只有
的,虽然我也不会证 -
那么我们需要支持删除加入快速求最大值,因为只会删 2 个,所以考虑维护最大的 3 个幂次就可以了
-
考虑一种不重不漏的贡献方式,假设钥匙是 +1 ,宝箱是 -1 ,对于 +1+1-1-1,我们使
和 为两组贡献,可以发现这样子做后的贡献可以做到不重不漏 -
考虑对于每种颜色建立虚树,对于每个钥匙节点在相应的虚树上 dfs ,
表示到达这个节点时还剩的钥匙,那么如果还剩一把,那么自己和这个节点就可以算贡献了 -
也就是对应
,如果路径 覆盖 ,那么贡献加一 -
可以发现这样算的贡献确实是不重不漏
-
对于路径覆盖问题,可以转换变成 dfn 在某个区间
-
那么每个贡献可以看成一些矩形,每种路径看成二维平面的一个点,那么就是询问一个点能被多少个矩形覆盖了
-
这个就可以将二维平面的信息全部离线下来,然后做
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】