C – Brutality
题如其名,相当暴力。直接暴力排序每一个连续段的值,然后计数统计即可。
翻译一下:
给你一棵带点权的树和一堆路径,问对于每一个点\(i\)有多少条路经满足\(w(s,i) = weight(i)\)。
听起来就挺毒瘤的,是吧。根据这一类树上问题的套路,考虑把所有路径拆成\((s \to LCA(s,t))\)和\((t \to LCA(s,t))\),分开处理。我们先来处理\((s \to LCA(s, t))\)这一类问题:假设我们现在要知道路径\((s \to LCA(s, t))\)对点\(i\)的贡献,必须满足:
例题:CH1201
输入一个长度为n的整数序列,从中找出一段不超过m的连续子序列,使得整个序列的和最大。
以前写的题解:CH1201:最大子序和题解
首先思考暴力:枚举端点和不大于\(m\)的长度,前缀和搞一搞就好,时间复杂度为\(O(n^2)\),肯定超时。我们可以考虑优化这个算法。