题目的大致意思是:有n个乒乓球手,然后他们都有一个能力值,然后需要每三个选手可以组成一场比赛,这场比赛要求,中间的那个人作为裁判,而且中间的人的能力值必须在两位选手之间,这个比赛才是合法的比赛,问这个这些选手一共能组织成多少场比赛?
解题思路:首先对单个人作为裁判进行研究,假设标号i的人,假设前面小于他能力值的人为C[i],那么前面大于他能力值的即为i - 1 - C[i],假设后面小于他能力值的人为D[i],那么后面大于他能力值的即为n - i - D[i],根据乘法原理和加法原理,题目的答案即为:
所以最终题目即转化为求C[i], D[i].
在求C[i],D[i]之前,先引入树状数组的知识,有如下的图:
建立一个