码迷,mamicode.com
首页 > 其他好文 > 详细

2017种树题解

时间:2020-07-01 14:23:17      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:sum   关系   大于   分析   个数   部分   就是   题解   line   

分析

每棵树的费用为 \(cost_i=\sum_{k=1}^(i-1) |x_i-x_k|\)

由于 \(x_i\)\(x_k\) 的大小关系的存在,我们可以把它分成两部分:

  1. \(\sum (x_i-x_k) | x_i >= x_k, 1 \le k \le i-1\)
  2. \(\sum (x_k-x_i) | x_i < x_k, 1 \le k \le i-1\)

上面 1 式继续展开:\(=\sum x_i - \sum x_k = cnt_1\times x_i + \sum x_k | x_i >= x_k, 1 \le k \le i-1\)
上面 2 式继续展开:\(=\sum x_k - \sum x_i = \sum x_k - cnt_2\times x_i | x_i < x_k, 1 \le k \le i-1\)

因此,我们只要找出上面的 \(cnt_1,cnt_2\) 和两个sum即可。
很显然,\(cnt_i\) 就是不大于 \(x_i\) 的数的个数,\(cnt_2\) 类似。
1 式中的 \(\sum x_k\) 是不大于 \(x_i\) 的所有数的和,2 式中的类似。
所以我们可以建线段树,把 \(x_i\) 加到 \(x_i\),求 cnt 和 sum 即求区间和。

2017种树题解

标签:sum   关系   大于   分析   个数   部分   就是   题解   line   

原文地址:https://www.cnblogs.com/kuangbiaopilihu/p/13218821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!