HDU 4911 Inversion
程序员文章站
2022-03-03 08:53:29
...
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911
题记:归并排序的训练。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
typedef long long ll;
ll a[N],b[N],cnt;
void Merge(ll l,ll mid,ll r){
ll i=l,j=mid+1,t=0;
while(i<=mid&&j<=r){
if(a[i]>a[j]){
b[t++]=a[j++];
cnt+=mid-i+1;
}
else b[t++]=a[i++];
}
while(i<=mid)b[t++]=a[i++];
while(j<=r)b[t++]=a[j++];
for(i=0;i<t;i++) a[l+i]=b[i];
}
void Mergesort(ll l,ll r){
if(l<r){
ll mid=(l+r)/2;
Mergesort(l,mid);
Mergesort(mid+1,r);
Merge(l,mid,r);
}
}
int main(){
ll n,k;
while(~scanf("%lld%lld",&n,&k)){
cnt=0;//初始化
for(int i=0;i<n;i++) scanf("%lld",&a[i]);
Mergesort(0,n-1);
if(cnt<=k)
printf("0\n");
else
printf("%lld\n",cnt-k);
}
return 0;
}
上一篇: HDU-4911-Inversion
推荐阅读
-
C - Monkey and Banana HDU 1069( 动态规划+叠放长方体)
-
HDU 1052(田忌赛马 贪心)
-
hdu-1338 game predictions(贪心题)
-
致初学者(四):HDU 2044~2050 递推专项习题解
-
C语言BFS--Find a way(Hdu 2612)
-
『ACM C++』HDU杭电OJ | 1425 - sort (排序函数的特殊应用)
-
【hdu5527】【2015ACM/ICPC亚洲区长春站 】Too Rich
-
HDU 1142 A Walk Through the Forest (记忆化搜索+Dijkstra算法)
-
HDU2196 Computer(树形DP)
-
HDU 5215 Cycle(dfs判环)