题解 1439: 蓝桥杯历届试题-小朋友排队

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

参考c语言写的

摘要:def add(d, i, x, maxh):     while i <= maxh + 1:         d[i] += x         i += i

树状数组,python

解题思路:注意事项:参考代码:n=int(input())h=list(map(int,input().split()))maxh=max(h)cnt=[0]*(n)c=[0]*(maxh+2)#c[i]代表的是身高i-1deflowbit(i):returni&(-i)defupdate(i,

1439: 蓝桥杯历届试题-小朋友排队(权值线段树) Java AC代码

解题思路:尝试使用了比树状数组功能更强大的线段树,线段树可以解决所有用树状数组解决的题,唯一缺点就是需要开辟4*n的大小才能保证不溢出。注意事项:对于本题来说,即求数组中某数的逆序对,然后求其等差数列的和即可。本代码没有构造权值线段树的过程,而是直接进行update操作,免去了建树的时间。
优质题解

蓝桥杯历届试题-小朋友排队【树状数组 C++ 详解】

**题目分析**:表面上看,这是一道排序题,但实际上,这道题目不仅仅要求简单的排序,因为题目要求的是小朋友从低到高排序后,他们的不高兴程度之和的最小值,也就是求逆序对数的题目。例如:样例输入(3,2,1)中,有3个逆序对——(3,2),(3,1),(2,1),

小朋友排队——树状数组

设第k个小朋友应该移动n次,则n=(1-k)个小朋友中身高大于k的人数+((k+1)-n)个小朋友中身高小于k的人数满足前大后小原则例如3321012(前大)210(后小)故总移动次数为222因此不搞笑值=3+3+3=9所以问题转化为求解每一位数的前k个身高大于k的人数+后(k+1-n)个身高小于k的

蓝桥杯历届试题-小朋友排队 树状数组AC代码(Java代码)

##思路小朋友从低到高排队两两交换则该小朋友需要交换的次数应该为:左边比该小朋友身高高的个数加上右边比该小朋友矮的个数对统计得到的数求累加和即为该小朋友的不高兴程度##代码```javaimportjava.util.Scanner;/***@authorJohnnyLin*@versionCreat