博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4911 Inversion
阅读量:7035 次
发布时间:2019-06-28

本文共 1884 字,大约阅读时间需要 6 分钟。

Inversion

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 197    Accepted Submission(s): 82


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<j≤n and a
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
 

Author
Xiaoxu Guo (ftiasch)
 

Source
 

题解及代码:

#include 
#include
#include
using namespace std;__int64 ans=0;void merge(int Array[],int l,int m,int r){ int temp[100110]; int i=l,j=m+1,k=0; while(i<=m&&j<=r) { if(Array[i]<=Array[j]) { temp[k++]=Array[i]; i++; } else { temp[k++]=Array[j]; j++; ans+=(m-i+1); //求逆序数的关键 } } while(i<=m) {temp[k++]=Array[i];i++;} while(j<=r) {temp[k++]=Array[j];j++;} for(i=l,j=0;i<=r&&j
=r) return; int m=(l+r)/2; mergesort(Array,l,m); mergesort(Array,m+1,r); merge(Array,l,m,r);}int main(){ int n,k; int Array[100110]; while(scanf("%d%d",&n,&k)!=EOF) { ans=0; for(int i=0;i
>Array[i]; } mergesort(Array,0,n-1); if(k>=ans) { printf("0\n"); } else printf("%I64d\n",ans-k); } return 0;}/*简单题,本题主要是求出当前数列的逆序数。我们直到每次调序都能将逆序数降低1。我们先求出逆序数。然后推断,当给出的调序次数小于当前序列的逆序数时,输出ans-k,否则输出0。

*/

版权声明:本文博主原创文章。博客,未经同意不得转载。

你可能感兴趣的文章
Python3-json3csv
查看>>
Ruby学习笔记-Array
查看>>
ABP理论学习之Javascript API(理论完结篇)
查看>>
ASP.NET 5 WebApi 返回 HttpResponseMessage
查看>>
UE工作流程实践
查看>>
[JavaScript]ECMA-262-3 深入解析.第二章.变量对象
查看>>
oracle的一些常用命令
查看>>
SQL Server中灾难时备份结尾日志(Tail of log)的两种方法
查看>>
Gradle tip #3: Tasks ordering
查看>>
ECC Copy Client 之后的SAP*登陆问题
查看>>
chest
查看>>
查看iPhone电池寿命
查看>>
备忘:BLOCK CORRUPTION IN SYSTEM DATAFILE
查看>>
教你如何删除WIN7系统文件以及无法删除的文件
查看>>
Note 741478 - FAQ: Materialized views
查看>>
Everything(文件搜索神器)
查看>>
KVC在定义Model类中的妙用
查看>>
笔试题目-J2EE
查看>>
jdk分析工具:jps和jstack
查看>>
如何将java源码打成jar包
查看>>