省选模拟8
T1:
分块,块内排序,因为M操作只有递增时有用,所以可以每次在块上暴力移动指针,均摊下来是对的
利用差分O(1)记录M操作使权值变化的次数,每次询问时重构所在块即可
A操作很简单,整块打标记,两端暴力重构即可
因为重构的块数是O(n)的,所以每次暴力sort就行了,复杂度是加起来的
最终复杂度为O(n√n+nlog√n)
T2:
题解说的对啊!
T3:
考虑最小割,然后样例就炸了
发现有些路径经过了不止一条边,又发现这些路径都是从S集合->T集合->S集合->T集合
其中都经过了一条从T集合到S集合的边
考虑如何求在割去这种边的情况下的最小割
将反边设置为INF即可
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步