F
每次相当于创建一个包含 各自所在集合的点的大点 ,然后 向 各自所在集合连边,边权就是胜率。
连完之后求每个点到根结点()的路径边权和。
G
定义 为杀至少 个怪物至少需要多少护身符。如果求出 ,可以二分求出问题的答案。
先固定 ,看怎么求 。我们不求 ,求 ,即杀至少 个怪物至多不选多少护身符。
设 为 中类型为 的怪物攻击力总和。如果不选 护身符,意味着承担 的伤害。可以贪心,优先抛弃 较小的护身符,直到抛弃的护身符 总和超过 。此时的数量就是 。
知道了怎么求一个 ,看一下怎么求连续的 。发现当 , 数组其实只有 增加了。
我们可以用两个平衡树维护当前已选护身符的集合 和未选集合 ,每次有 增加了,只会使一个元素变动。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!