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

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

筛选

小朋友排队——树状数组

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

小朋友排队 (C++代码)

摘要:解题思路:    这道题最终要求解的其实就是给定整数串中的逆序对的个数,但此题直接暴力是会超时的,所以利用树状数组进行求解,思路如下:首先利用输入的整数串构建一个树状数组,然后树状数组的getSum(……
优质题解

小朋友排队 ---树状数组---O(nlogm)算法--AC耗时50ms

摘要:解题思路:    先熟悉树状数组原理及其应用。    1.这道题可以转换成求每个位置的左边比他小的个数和右边比他大的个数,这两个相加就是这个人要被交换的次数,然后根据等差数列前n项求和公式(a1+an……

树状数组,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,
优质题解

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

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