USACO 2023 February Contest, Platinum 题解

Hungry Cow

题意:有一些 (di,bi) 表示在 di 天有 bi 的食物,如果这一天有食物,奶牛会吃一单位食物,否则不吃,动态修改,问吃到食物的天的编号之和。N105

题解:用线段树维护区间的信息,维护差多少可以让这个区间吃满,这个区间会传给后面多少以及区间编号和。查询一个有 k 个单位食物经过一个区间可以线段树二分实现,在线段树 update 的时候到右子树查询左子树多出来的部分(即楼房重建线段树),这样就维护出了答案。

Problem Setting

题意:有 N(N105) 道题,M(M20) 头奶牛,每头奶牛有个评价,简单的或者困难的,你要求多少个题目序列,满足任意一头奶牛都有这个题目序列满足简单的在困难的之前。

题解:考虑将每个题看成一个长度为 M 的二进制数,我们相当于找 S1S2S3Sk。然后这个暴力 O(3M) dp 就行了,因为 N 特别小,有值的位置只有 105 个。

Watching Cowflix

题意:给定一棵树,有一些关键点,找一些不相交的连通块,包含所有关键点,这个的权值为 i=1C(|ci|+K)。让你对每个 K 求权值最小值。

题解:考虑给定 K,可以有一个线性的 dp:fu 表示 u 这个点在连通块里,gu 表示 u 这个点不再连通块里的最小值。我们考虑所有 K,画成函数的形式,F(K) 表示 K 的答案,我们发现 F(K) 可以表示成根号个分段函数(斜率小于根号最多根号段,斜率大于根号个数不超过根号)。分治求 F(K),如果遇到 F(l)F(r) 相等,那么 F(lr) 都相等。复杂度 O(nnlogn)

posted @   xay5421  阅读(157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示