树状数组
文章平均质量分 52
11011b
你配不上自己的野心,也辜负了曾经历的苦难
展开
-
Codeforces 1452E Two Editorials(树状数组)
Codeforces 1452E Two Editorials(树状数组)原创 2022-09-23 19:15:58 · 286 阅读 · 0 评论 -
Codeforces 1167F
题目链接:Scalar Queries 题意:给定长度为n(1<=n<=5*10^5)的数组,每个元素ai(1<=a<=10^9)只出现一次,,定义f(l,r),为区间内数重新排序后每个元素乘上对应下标后的和,求 题解:实际上我们可以把总贡献拆解成每对数之间的贡献,对于每个数i考虑他左边数j,如果a[i]>a[j],那么j对i贡献就为j*(n-i+1)*a[i],其中”j*(n-i+1)“为包含(i,j)的区间数量,再反过来考虑下右边的情况就能知道i最终的贡献,处理部分,我原创 2022-04-03 14:25:58 · 236 阅读 · 0 评论 -
Codeforces Round #780 (Div. 3)F2 Promising String (hard version)题解 (二分+树状数组)
题目链接:F2. Promising String (hard version) 题解:我们可以发现某一段符合的条件一定是‘-’比‘‘+’多出3的整数倍,因为只要‘-’比‘+’多,就一定存在连续的’--‘,此时我们就可以将其变成’+‘,那么相对’+‘‘而言’-‘的数量就减少了3,那么就一定能使得最终’+‘和’-‘的数量相等,我们可以维护从起始点到每个位置时,每个位置上’-‘比’+‘多多少个,即为sum[i],若某两个位置i,j(i<j)间的字符段满足条件的充要条件是:sum[j]>sum[i]原创 2022-04-01 18:51:39 · 593 阅读 · 0 评论 -
Codeforces 1096F Inversion Expectation(数学+树状数组)
题目链接:Inversion Expectation 题意:给定一个长为n数组,数组中包含[1,n]中每个元素,但部分位置被-1代替,每个位置可以被[1,n]中任意数代替,但需要满足最终数组中包含[1,n]中每个元素且每个元素只出现一次,问期望的逆序对数量 题解:一直以为是DP,参考了题解后恍然大悟,我们可以把问题分成三个部分分开考虑 1.已知数和已知数直接形成的逆序对,可以用树状数组维护即可 2.未知数和未知数之间形成逆序对,我们可以发现两个未知数,二者大于对方的概率都为1/2,所以记录下有多少个原创 2022-03-31 23:13:49 · 93 阅读 · 0 评论