【杂题乱写】2023.12 #1

Page Views Count

因为是月末,所以可能这篇博客只有极少量的题目。

Gym-101221B Buffed Buffet#

离散和连续分别考虑。

离散看上去是一个闵可夫斯基和做 (max,+) 卷积的东西,问题是有定义的位置是 w 的倍数,显然是不能差分归并的。发现对于每个 w 只能取 Ww 个,并且每个的贡献越取越小,所以贪心维护需要的个数,这样总数是 O(Wlogn),直接背包 O(W2logn) 能过。

连续的情况开始考虑的是合并二次函数,合并发现没有常数项的合并出了常数项,问题在于实际的定义域是非负实数。所以不考虑积分后的二次函数了,直接看作选 dw 的物品减少产生 dt=Δtdw 的贡献,那么一定贪心选初始 t0 最大的一个,直到某两个物品当前贡献相同,此时同时选这个两个物品,选择的比例是 Δt2Δt1,算一算发现相当于新的 Δt 是二者的调和平均数。

提交记录:Submission - Gym

Luogu-P4220 WC 2018 通道#

边分治题目,分治边两侧子树点对的 LCA 一定之和一侧的子树有关,所以可以与到根节点距离视作常量 valu

对第二棵树建虚树,相当于枚举 LCA,此时 valu 又算上了第二棵树上到根节点的距离,现在就是求类似 valu+valv+dist3(u,v) 了,因为边权都非负,可以用一些直径相关的结论。

这里大致做法非常显然了:维护子树在第三棵树上的直径,合并算答案。但实际上要求的是端点异色的直径,直接维护这样的直径可能出现一个子树内节点同色或者是实际的答案被忽略的情况,原因在于异色直径不一定是全局直径,扔掉了一个全局直径的端点就可能算错答案。解决方法是对每个子树维护同色直径,异色的直径端点一定来自同色直径,那么直接合并到时候更新答案就行了。

提交记录:Submission - Luogu

这份代码在 UOJ 好像过不去 hack,原因未知。

CodeForces-103E Buying Sets *2900 / LibreOJ-6045 雅礼集训 2017 Day 8 价#

题目容易转成”选一个集合就必须选包含的所有元素”这样的抽象限制,感觉是一个左部点集合右部点元素的最大全闭合子图,最小转最大都取反就行了。

问题是题目还要求保证选的集合大小与集合并的大小相同,但是给的保证实际上就是 |T||NG(T)|,满足 Hall 定理,那么最小割的边数一定是 n。而最大权闭合子图实际上左侧割掉是不选,右侧割掉是选,这样不选的集合个数与选的元素个数和是 n,自然选的集合个数和选的元素个数就相等了。限制不攻自破了。

提交记录:Submission - CodeForces

Luogu-P9755 CSP-S 2023 种树#

先考虑二分答案。

这样对每个 u,容易求出 tu 表示第 u 棵树最晚要在 tu 时刻种下才能在 mid 时达到 au

现在还有一个树的限制,设 fu=minvsubtree(u){tvdist(u,v)},初始只能选 1,每次取出 f 最小的,将儿子放进堆里,如果存在某个时刻取出的限制 f 已经无法满足了,那么就不合法。

t 的部分需要一些精细计算。

感觉 CSP 亏了一个亿。

提交记录:Submission - Luogu

作者:SoyTony

出处:https://www.cnblogs.com/SoyTony/p/Problems_in_December_2023_1.html

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

posted @   SoyTony  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
历史上的今天:
2022-12-28 【学习笔记】Link Cut Tree
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示