CF1829G Hits Different

CF1829G

先将整个塔变为一个直角三角形的模样。这时就可以很好的用数组表示了,这时发现答案就是一个倒着的等腰直角三角形的和(不考虑边界)。

考虑预处理。

令 $a_i$ 为点 $i$ 所在的行数,$f_i$ 表示 $i$ 号点的答案,$g_i$ 表示 $i$ 和 它正上方的元素的价值。

当 $i$ 为当前行的第一个数时,显然 $f_i = f_{i - a_i + 1} + i ^ 2$,$g_i = g_{i - a_i + 1} + i ^ 2$

当 $i$ 为当前行的最后一个数时,显然 $f_i = f_{i - a_i} + i ^ 2$,$g_i = i ^ 2$

否则 $f_i = f_{i - a_i} + g_{i - a_i + 1} + i ^ 2$,$g_i = g_{i - a_i + 1} + i^2$

边界:$f_1 = g_1 = 1$。$g_1$ 其实可以不赋值,因为第一列是特判了的,转移时就用不到第一列的 $g$ 了。

时间复杂度:$\mathcal{O}(n + m)$

评测记录

posted @ 2023-05-09 22:01  Pengzt  阅读(0)  评论(0编辑  收藏  举报  来源