思路讲解
ABC- 371 - E- I Hate Sigma Problems
【AtCoder 初学者竞赛 390比赛讲解】 【精准空降到 1:05:10】 https://www.bilibili.com/video/BV1NNfkY2Esv/?share_source=copy_web&vd_source=6ca0bc05e7d6f39b07c1afd464edae37&t=3910
正过来求贡献的想法

这个左端点选择数和右端点选择数怎么样快速求出?
还是一样的,用类似于邻接表的数据结构二分快速求出
AC代码
AC(这个代码稍微有点啰嗦)
https://atcoder.jp/contests/abc390/submissions/62410948
1 | // Problem: F - Double Sum 3 |
心路历程(WA,TLE,MLE……)
思路排除,不太可能是线段树
ABC-391-E - Hierarchical Majority Vote(三叉线段树) 这种合并比较容易的更适合用线段树解决

反过来贡献的想法(有缺陷)

1,3,6,10的由来(1,2,3,4代表所有以他们为结尾的区间)

像这种问题,考虑区间合并比较麻烦,不如化整为零,计算个体的贡献,对所有位于它贡献位置后面的全部减id(之所以是减下标id是因为所有它后面的位置所代表的区间中有id个含有这个位置的区间)

好,现在知道了知道了贡献我们怎么求解这个问题。那么问题来了,我们怎么做到O(n)的求贡献那?

我们发现题目贴心的有了这么一个限制条件,我们可以快捷的用二分求出贡献为止,利用类似于邻接表的数据结构。
程序过不了样例2

原因是在于以下(3,1已经被考虑没用了,但是4在有3的情况下也没用这点没考虑)

1 | // Problem: F - Double Sum 3 |