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}\) 就可以了。

posted @ 2025-10-15 10:07  小熊涛涛  阅读(9)  评论(0)    收藏  举报