2023.8.18 闲话
语录:
Rolling_star:*2900,不是特别高
K8He:但是怎么一不小心就最优解了呀,你们都不卡常的吗
K8He:刚才教练说话的时候,我以为又要发零食了
y_z_h:(精神小火)怎么起这么个 SB 名字
y_z_h:SB jijidawang
Aewruxk:(%%% happyguy)膜个 JB
IBR 1C. 子集积
单步容斥后变算 \(\le m\) 的个数,不难想到特判 \(1\) 后直接背包计算 .
不过不太能过,注意到答案和序列的顺序并没有关系,于是可以把相同的数一起转移,这样就能过了 .
根据调和级数的分析可以得到时间复杂度为 \(\Theta(m\log m)\) .
IBR 1E. 树上数点
类似 Blood Cousin 考虑启发式合并,每个深度分别维护,则可以发现只需要维护一种维护集合的数据结构,需要支持:
- 全局加 .
- 查 \(\le k\) 的元素个数 .
用带标记的 Um_nik 维护,使用有序数组归并好像时间复杂度就是 \(\Theta((n+q)\log n)\) .
IBR 2B. 最大割
正边全割掉之后边权取负算最小割即可 .
时间复杂度 \(\Theta(\operatorname{dinic}(n,m))\) .
IBR 2C. 勾股数对
首先为了方便分析令 \(n,m,p\) 同阶 .
众所周知任意满足 \(2\mid y\) 的本原勾股数 \((x,y,z)\) 和满足 \(a\perp b,\,a>b\) 且 \(a,b\) 奇偶性不同的正整数 \(a,b\) 形成双射:
那么再看 \(x,y\) 的限制可以发现 \(a,b\) 其实是被限制在不大于 \(\sqrt n\) 级别的,于是暴力枚举是可以接受的 .
时间复杂度为 \(\Theta(n)\) 或 \(\Theta(n\log n)\)(GCD 贡献 log,不带 log 的做法可以看 zky 写的).
理论速通方式:找 Keven_He(玩原神)写,时间复杂度 \(O(p)\) .
I am that light, I am deliverance.
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17641556.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ