摘要:
费用流。把每个方格拆成 $T$ 个点,$t$ 时刻一个方格向周围四个方格的 $t + 1$ 的点连一条容量为 $1$ 费用为 $0$ 的边,向自身的 $t + 1$ 连一条容量为 $1$ 费用为该方格最大幸福值的边。源点向方格为 'S' 的0时刻连一条容量为 $1$ 费用为 $0$ 的边。所有点的 阅读全文
摘要:
感觉题目都已经快把正解给说出来了...strongly connected的两个点的消耗为0,其实就是同一个边双连通分量里面的点消耗为0。然后缩一下点,再树形DP一下就完了。第一次写边双,但感觉挺简单的。 #include <bits/stdc++.h> #define ll long long u 阅读全文
摘要:
对于一对 $(x, y)$,能成为逆序对的取决于绝对值大的那个数的符号。假如 $a[x] > a[y]$,当 $a[x]$ 为正时,不管 $a[y]$ 取不取负号都比 $a[x]$ 小。当 $a[x]$ 为负时, 不管 $a[y]$ 取不取负号都比 $a[x]$ 大。那么就变成了统计每个节点的子树及 阅读全文
摘要:
A. Kefa and First Steps 求最长递增连续子序列。 B. Kefa and Company 排序二分就行了。 #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 1e5 阅读全文
摘要:
A. Raising Bacteria 数二进制位有多少个1就好了。 B. Finding Team Member 题意:有 $2n$ 个人,任意两个人配对有一个价值,如果一人的目前的最优配对那个人的最优配对也是自己,那么两个人可以配对。 思路:直接模拟,每次至少能让两个人配对成功。所以复杂度 $O 阅读全文
摘要:
[传送门] 设最后 $m$ 段每段数字之和为 $a_i$,那么最后答案为 $m^2 \sum \dfrac {\left( a_{i}-\dfrac {s}{m}\right) ^{2}}{m}$把括号拆开后最后答案为 $m\sum a_i ^{2}-S^{2}$要求最小化$\sum a_i ^{2 阅读全文
摘要:
[传送门] 感觉这种信息不符合区间可加性,或者用来区间相加的时间复杂度太高的话就直接分块。res[i][j] 表示第 $i$ 块到第 $j$ 块之间的答案,查询就先查询整块,再对两端暴力。注意不要用memset清空cnt数组,每次使用了再循环一遍撤销操作就行了。 #include <bits/std 阅读全文
摘要:
[传送门] 一个单调不减的序列,如果在每个位置取的数都加上对应位置的值,这样就是严格单调递增的了。如果 [1, 1, 2, 2, 3]就会变成 [2, 3, 5, 6, 8]就相当于在某个值域里取一些不重复的数了,具体这个值域就是[L + 1 , R + n]。但其实此时跟值域具体的值无关了,只跟值 阅读全文
摘要:
[传送门] 如果只有单组询问就是水题。多组询问就不能直接在线做了。考虑离线。 点分治,把当前重心到未被处理过的子树的距离放进一个数组,按距离从小到大排序。排完序后把这些节点替换成当前前缀权值最大的节点。因为如果到这个节点的距离为$r$,那么小于$r$的也能到达,所以取前缀max没有错。 然后对询问的 阅读全文
摘要:
[传送门] 题目即求所有的三元组,相对大小关系同 $p_1,p_2,p_3$。 题解说都很清楚,这里写一下过程整理一下思路。 如果我们枚举中间这个元素,那么就是统计子树内外有多少个大于这个数和小于这个数的个数。 假设$a_1$,$a_3$的$LCA$不是$a_2$,那么就是一个在$a_2$子树内一个 阅读全文