专栏文章

题解:AT_arc129_d [ARC129D] -1+2-1

AT_arc129_d题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minse3jk
此快照首次捕获于
2025/12/02 07:35
3 个月前
此快照最后确认于
2025/12/02 07:35
3 个月前
查看原文

[ARC129D] -1+2-1

很厉害的推式子题,要多训式子了。
下面默认下标为 00 时是 nn,为 n+1n+1 时是 11
可以先非常典型的设 xix_i 表示 ii 操作了多少次(xi0x_i\geq 0),那么答案就是 i=1nxi\sum_{i=1}^{n}x_i
考察 xx 的性质,不难发现有 2×xixi1xi+1+ai=02\times x_i-x_{i-1}-x_{i+1}+a_i=0
发现上面的式子有个同构,设 bi=xixi1b_i=x_i-x_{i-1},有 bi+1bi=aib_{i+1}-b_i=a_i
接着考察性质,发现本题中 i=1nai\sum_{i=1}^{n} a_i 如果不等于 00 一定无解,所以我们只要考虑 i=1nai=0\sum_{i=1}^{n}a_i=0 的情况。
发现把若干个 aa 加起来的结果会产生相消,所以不妨加起来:
bib1=j=1i1ajb_i-b_1=\sum_{j=1}^{i-1}a_j
再发现 i=1nbi\sum_{i=1}^{n}b_i 是等于 00 的,所以不妨把上面那个式子也加起来:
i=1nbib1=i=1nj=1i1aj=i=1n(ni)ai\sum_{i=1}^{n}b_i-b_1=\sum_{i=1}^{n}\sum_{j=1}^{i-1}a_j=\sum_{i=1}^{n}(n-i)a_i
nb1-nb_1 移到右边去就构造出了 i=1nbi\sum_{i=1}^{n}b_i,于是有:
i=1nbi=nb1+i=1n(ni)ai=0\sum_{i=1}^{n}b_i=nb_1+\sum_{i=1}^{n}(n-i)a_i=0
解个方程有:
b1=i=1n(ni)ainb_1=-\frac{\sum_{i=1}^{n}(n-i)a_i}{n}
接着我们就可以递推出 bb 数组的所有值了。
接着考虑解决 xx,因为 xi=xi1+bix_i=x_{i-1}+b_i,所以只需要确定 x1x_1 的最小值即可。
由于我们有 xi0x_i\geq 0 的性质,所以说只要递推一遍,将 bb 的前缀和中最小的数的相反数和 00max 即可,具体实现细节可看代码。
总时间复杂度 O(n)\operatorname{O}(n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...