20241023 模拟赛

20241023 模拟赛

A. 浇水

考虑统计每个点被浇水了几次,容易用二维前缀和维护,最后如果这个点在对应颜色的矩阵里就扣除一个次数,最后有次数的就枯萎。

B. 藤养巴士

赛时考虑树形 dp,和树上差分解法殊途同归。

fu 表示,假设所有目标在 u 子树中的人都已经到了 u 子树中,将这些人都送到对应位置,并且最后回到 u 的最短路径长度。转移时,考虑 uv 这条边经过了几次。设 cntau,cntbu 分别表示 u 子树中有几个 a 和几个 b,那么如果 cntbv0,说明这条边至少要走一次。容易发现需要经过这条边的人数为 cntbvcntav,表示目前在 u 子树中的目标为子树 v 的人数减去当前在子树 v 中的人数,也就是当前在点 u 的,目标为 v 子树的人数。考虑一趟巴士需要一个来回,那么经过这条边的次数就为 max{1,2×cntbvcntavl}

直接求出 f1 即可。最后注意到其实跑完最后一趟是不用回到根节点的,所以再减去离根最远的 bi 与根的距离即可。

破防破防,这几天每次模拟赛都要挂好多分,今天甚至挂了 100pts,怎么办啊?

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