2017.08.18总结

来源:互联网 发布:中行外汇行情分析软件 编辑:程序博客网 时间:2024/06/15 19:09

今天看了树状数组,非常抽象比较难懂。

第一题:

用树状数组来存储,把每个兵营的人数存在树状数组中,这道题用树状数组可以及时更新,即每次更改数组中的某个数,会刷新整个数组的值。这道题主要用了树状数组的基本操作add和sum,求区间和的时候用的是sum(i)-sum(j-1)。

第二题:

题意:

一队人,每个人的能力值都不同,然后要有三个人打比赛,其中一个人当裁判,并且两外两个人的能力值一个要比他高,一个要比他低,要求的是对任意一个i裁判,他能组织多少场比赛。

思路:

我们需要确定的是在这个人的左边有几个人比他能力值低,从而就能知道在他左边比他高的人数,在他右边也就同理了。令X[n]作为标记数组,假设当前我们扫描到了第i个点,此时如果X[y]==1,那么表示第i个点左边出现了一个a[k]==y的值且k<i。那么这时,我们只要用树状数组计算X[n]数组中区间[1, a[i]-1]的和即可。

原创粉丝点击