【题目来源】
【题目描述】
体育课上有 n 名同学排成一队,从前往后数第 i 位同学的身高为 hi,体重为 wi。目前排成的队伍看起来参差不齐,老师希望同学们能按照身高从高到低的顺序排队,如果身高相同则按照体重从重到轻排序。在调整队伍时,每次只能交换相邻两位同学的位置。老师想知道,最少需要多少次交换操作,才能将队伍调整成目标顺序。
【输入格式】
第一行,一个正整数 n,表示队伍人数。
接下来 n 行,每行两个正整数 hi 和 wi,分别表示第 i 位同学的身高和体重。
【输出格式】
输出一行,一个整数,表示最少需要的交换次数。
【输入样例】
5
1 60
3 70
2 80
4 55
4 50
【输出样例】
8
【数据范围】
对于所有测试点,保证 1≤n≤3000,0≤hi,wi≤10^9。
【算法分析】
这题本质上是一个求逆序对数量的问题。题目要求将队伍按身高从高到低排序,身高相同时按体重从重到轻排序,每次只能交换相邻两位同学。最少交换次数等于当前排列与目标排列之间的逆序对数量。
【算法代码】
【参考文献】
