并规排序求逆序对数 hud 4911
来源:互联网 发布:阿里巴巴服装淘宝网 编辑:程序博客网 时间:2024/06/11 04:46
Problem Description
bobo has a sequence a1,a2,…,an. He is allowed to swap twoadjacent 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<j≤n and ai>aj.
Find the minimum number of inversions after his swaps.
Note: The number of inversions is the number of pair (i,j) where 1≤i<j≤n and ai>aj.
Input
The input consists of several tests. For each tests:
The first line contains 2 integers n,k (1≤n≤105,0≤k≤109). The second line contains n integers a1,a2,…,an (0≤ai≤109).
The first line contains 2 integers n,k (1≤n≤105,0≤k≤109). The second line contains n integers a1,a2,…,an (0≤ai≤109).
Output
For each tests:
A single integer denotes the minimum number of inversions.
A single integer denotes the minimum number of inversions.
Sample Input
3 12 2 13 02 2 1
Sample Output
12
题目意思,就是给你一个长度为n的数列,让你任意的交换相邻的两个数,使得i<j, ai>aj,最后让求最小的倒置数,也就是逆序对数的。思路: 这道题呢,我们可以先求你选对数cnt,然后再用cnt-k,就是我们所要求的,不过要判断一下cnt-k的正负。
代码
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;const int N=100005;__int64 cnt;int a[N],T[N],i,j,n,k;void merge_sort(int *a,int x,int y,int *T){ if(y-x>1) { int m=(x+(y-x)/2); int p=x,q=m,i=x; merge_sort(a,x,m,T); merge_sort(a,m,y,T); while(p<m||q<y) { if(q>=y||(p<m&&a[p]<=a[q])) { T[i++]=a[p++]; } else { T[i++]=a[q++]; cnt += (m - p ); } } for(i=x;i<y;i++) a[i]=T[i]; }}int main(){ while(~scanf("%d%d",&n,&k)) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } cnt=0; merge_sort(a,0,n,T); printf("%I64d\n",max(cnt-k,(__int64)0)); } return 0;}
0 0
- 并规排序求逆序对数 hud 4911
- 归并排序求逆序对数)
- 归并排序&求逆序对数
- 归并排序求逆序对数
- 归并排序求逆序对数
- 归并排序求逆序对数
- 求逆序对数(利用归并排序)
- POJ 2299 归并排序 求逆序对数
- 归并排序算法求逆序对数
- CDOJ 1341 卿学姐与城堡的墙(并归排序求逆序对数)
- hdu 4911 求逆序对数+树状数组
- 归并排序及利用归并排序求逆序对数
- 求逆序对数
- 求逆序对数
- 求数组逆序对数
- 10.求逆序对数
- 求逆序对数
- poj 求逆序对数
- pwntools初体验
- flex布局
- POJ 3213 PM3 可能会
- 每天一个adb命令:am 命令详解
- 练习系统 实验一 谁拿了最多的奖学金
- 并规排序求逆序对数 hud 4911
- 传感器
- spring参数注入细节
- 108. Convert Sorted Array to Binary Search Tree
- 泛型以及泛型擦除
- Handler机制分析之一
- 位图与布隆过滤器 的说明 介绍
- 线段树例题5
- Stanford编程方法学公开课作业 2 ---- Karel中生成棋盘的代码