洛谷P1351 - 联合权值

被浏览

由题意得一个点对的联合权值是它们的点权相乘,而 2 个点形成点对的条件是距离为 2。

于是我们可以通过枚举这 2 个节点的公共点来算出以这个点为中心的权值和。

但是先枚举中心点再枚举其相邻的节点时间复杂度达到了$O(n^3)$,我们不能承受。

经过观察发现,对于特定的点,它都要乘上除自己以外的所有点权,再相加。然后我们就可以先处理出点权和,统计答案的时候把自己减去即可。

洛谷P1432 - 倒水问题

被浏览

很容易看出这是宽度优先搜索,因为要求步数最少,且每个操作代价相同。

我们可以按操作类别分 6 种情况扩展,如果搜到最终状态就跳出 BFS(搜索顺序可以随意,因为 spj 已经配置好了,不像数据修改前要有特定的顺序)。

记得标记已经出现过的情况,不然会 TLE/MLE;

洛谷P2234 - 「HNOI2002」营业额统计

被浏览

根据题意我们发现对于每个$A_{i}$,与它绝对值最小的一定是前$i$个数排序后在它前面或后面的数。

这样的话,我们维护一个单调的序列,插入每天的营业额时计算其波动值即可。

最暴力的便是插入排序,复杂度$(N^2)$,不能忍受。。

我们应选择复杂度为$(NlogN)$的方法。

维护一个单调序列自然想到了 set(平衡树也可以,但是作者懒,想用 STL 水过去,逃……),因为可能有多个相同的营业额,所以我选择了 multiset。

软件推荐

被浏览

前言

用了这么长时间的电脑,在尝试无数次后,终于整理出了一份较为详细的软件清单。我觉得好用的软件,我都会在这里与大家分享,希望大家能够喜欢蛤。 ♪(´▽ `)

洛谷P1107 - 雷涛的小猫

被浏览

我们根据题意,发现这是一个 DP 题,定义$f_{i,j}$表示在高度为$i$,当前要爬的树为$j$所能获得的最大柿子数。

易得状态转移方程:$f_{i,j}=max(f_{i-1,j},f_{i-delta,k}) (1\leq k \leq n)$ 当$i>delta$时后一项成立。

于是我们得到了一个时间复杂度为$O(H \times N^2)$,空间复杂度为$O(N \times H)$的算法啦。。