[ARC125F] Tree Degree Subset Sum 题解

考虑 di>0,所以 didi1,则 i=1ndi=n2
注意到:对于任意的 y,合法的 x 值域上一定是连续的。

证明:
L 是满足 (x,y) 合法的最小的 xR 是满足 (x,y) 合法的最大的 x,满足 di=0i 恰有 p 个。
注意到多加入或删除一个 di=0i 不会使 y 变化,又因为 L 是极小的,所以 (L,y) 的方案里一定不存在一个满足 di=0i,同理 (R,y) 的方案里一定包含所有满足 di=0i
所以:

  • x[L,L+p](x,y) 合法;
  • x[Rp,R](x,y) 合法。

而若 L+p+1<Rp,则命题不成立,因此我们尝试证明:RL2p+1
考虑 yx,最坏情况下其最小值为全选 di=0i(不一定能全选,下同),每个 i 贡献为 1,可得 (yx)minp,最坏情况下其最大值为全选 di>0i,可得 (yx)maxn2(np)=p2,又因为 (yx)min=yR(yx)max=yL,所以 RL=(yx)max(yx)min2p22p+1

有了这个结论,如果是普通的 01 背包计算 L,R,复杂度是 O(n2) 的,但是考虑 i=1ndiO(n) 级别的,所以不同的 di 只有 O(n) 种,可以跑单次 O(n) 的单调队列优化多重背包,复杂度就是 O(nn) 了。
https://atcoder.jp/contests/arc125/submissions/62887472

posted @   Include_Z_F_R_qwq  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示