『平衡树』Day2 略解
前言
对未来的真正慷慨,是把一切献给现在。
还是继续写总结。
A
日常被数据结构硬控刚好
嗯,我看见
然后
首先有一个比较好想的思路是,你考虑将一个僵尸分裂成两个,一个表示这个僵尸被右上方向撞上去,反弹后变成右下方向,一个表示这个僵尸被右下方向撞下来,反弹后变成右上方向。
然后考虑建边,找到每个僵尸对应方向上的第一个会撞到的下一个僵尸,连一条有向边。
(其实建边的过程还是不是很好写的,可以考虑用旋转公式转在一条线上,或者是你发现由于有反弹,本质上只有
可以发现,在这样每个僵尸裂成两个点之后,图会形成若干条链,且互不相交,并且每个僵尸裂成的两个点会分别处于两条链上。
第一次操作显然就是找到每根轨道
考虑中途僵尸死掉之后怎么把他从链上删掉。假设这个僵尸对应的点是
这样我们就可以每次操作完之后,动态维护我们需要的
特别注意两个细节,第
细节真的巨多,硬控我一天,所以我要立刻去
因为疑似暴力跳复杂度不太对,所以跑的巨慢,还卡了半天常。
B
先写今天的新课,有时间再来补。
C
简单题,以前还做过。
显然有一个策略,就你考虑枚举领导忍者的点,然后在他的子树中选择尽可能多的忍者使得薪水不超过
可以使用线段树合并,或者可并堆,只要当前堆内的薪水总和大于
D
先写今天的新课,有时间再来补。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】