2025/10/14 总结
好冷好热好冷好热
情况
- 时间:\(30min\)
 - 预期:\(100\)
 - 实际:\(100\)
 
知识点
- 贪心
 
思路
我们可以确定一个区间,这个区间是在该时刻可能的温度范围(当然要和要求的温度取并集),如果没有温度范围,则说明不能满足该客人的需求,输出 No 即可,如果所有的客人都满足则输出 Yes。注意:一开始需要把所有客人按照时间来排序,不然会出错。
杀戮尖塔
情况
- 时间:\(30min\)
 - 预期:\(100\)
 - 实际:\(100\)
 
知识点
- 树形 \(\text{dp}\),\(\text{LCA}\)
 
思路
我们先可以想到树形 \(\text{dp}\),但我们发现复杂度为 \(O(nk)\)(\(k\) 为不同的编号数量),所以我们把出现次数超过 \(100\) 次的编号用树形 \(\text{dp}\) 来处理,其余的则直接把所有有该编号的点取出来,看是不是父亲节点即可(我可以用了 \(\text{LCA}\)),所以总复杂度为 \(O(nx+100q\sqrt n)\)(\(x\) 为编号数量大于等于 \(100\) 的种类数,\(x\) 一定小于 \(1000\))
故障机器人
情况
- 时间:\(1h\)
 - 预期:\(0\)
 - 实际:\(5\)
 
知识点
- 最短路
 
思路
考试的时候没有思路,所以就输出了 \(-1\)。
我们可以先处理出每个机器人可以到哪些点,我们思考一下就可以想到机器人到达的点肯定是不能到的,所以我们处理出最短的路径后,再回溯找到路径即可。
树上纯树
情况
- 时间:\(2h\)
 - 预期:\(100\)
 - 实际:\(100\)
 
知识点
- 树上 \(\text{dp}\),李超树
 
思路
我们先可以很容易地想到这道题我们可以从子节点枚举,得到转移式 \(dp_x=\min(dp_y+a_xb_y),y\in\text{subtree}(x)\),所以可以 \(O(n^2)\) 的复杂度做出这一道题目,接下来我们考虑优化。
我们观察 \(dp_y+a_xb_y\) 这一个式子,发现如果把 \(dp_y\) 当作截距,\(b_y\) 当作斜率,\(a_x\) 当作一个点,就可以变成一个一次函数,所以我们只需要维护这几条直线就可以了,所以直接用李超树维护 \(\text{dp}\) 就可以了。

                
            
        
浙公网安备 33010602011771号