Inversion
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 914 Accepted Submission(s): 380
Problem Description bobo has a sequence a
1,a
2,…,a
n. He is allowed to swap two
adjacent numbers for no more than k times.
Find the minimum number of inversions after his swaps.
Note: The number of inversions is the number of pair (i,j) where 1≤i
i>a
j.
Input The input consists of several tests. For each tests:
The first line contains 2 integers n,k (1≤n≤10
5,0≤k≤10
9). The second line contains n integers a
1,a
2,…,a
n (0≤a
i≤10
9).
Output For each tests:
A single integer denotes the minimum number of inversions.
Sample Input
3 1
2 2 1
3 0
2 2 1
Sample Output
1
2 题意:n个数,最多有k次相邻位置的数的交换,问最小的逆序数为多少 思路:保证每次交换逆序数都减小,可以参考冒泡排序的做法。最后只要计算原数列逆序数,然后减掉k即可。
#include
#include
#include
#include
#include
#include
#include
#include
|