AtCoder Beginner Contest 372(A - F)

A:直接输出。

B:把 \(M\) 三进制拆分,最多 10 位,每位最多为 2,\(N \le 20\) 足够了。

C:暴力修改,每次只产生 \(O(1)\) 影响。

D:预处理 st 表,二分每个 \(j\) 会断哪些 \(i\) 产生贡献,差分一下。

E:启发式合并平衡树,\(k\) 更大也能做。

F:只保留有特殊边经过的点,把 \(i, j\) 之间的 \(j - i\) 条边替换成权值为 \(j - i\) 的一条边。

\(f(i, j)\) 表示走了 \(j\) 步,以特殊点 \(i\) 结尾的路径个数。两个相邻特殊点间的平凡点 \(l\) 对答案的贡献为 \(f(i, k - (l - i))\)

submissions

作者:Luxinze

出处:https://www.cnblogs.com/Luxinze/p/18425073

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

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