歸併排序hdu4911

2021-08-22 10:03:01 字數 777 閱讀 1500

寫乙個歸併排序的模板,歸併排序也是非常實用的一種演算法吧,而且時間複雜度為o(nlgn)。並且可以求出逆序數等等問題。話不多說請看**。。。orz

void merge_sort(int

*a,int

x,int

y,int

*t) else

} for(i=x;i}

}

如poj2299,,hud4911

就拿hdu4911來說吧直接上歸併模板,話不多說,請看**,,orz

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

long

long maxn=1e5+10;

ll a[maxn],b[maxn],ans=0;

void meger_sort(ll *a,ll x,ll y,ll *t)

}for(i=x;iint main()

meger_sort(a,0,n,b);

printf("%lld\n",max(ans-k,(ll)0));//這裡要注意0的情況!!

//for(int i=0;i

// printf("%d ",a[i]);

// }

}}

hdu 4911 Inversion 歸併排序

problem description bobo has a sequence a 1,a2,a n.he is allowed to swap twoadjacentnumbers for no more than k times.find the minimum number of invers...

HDU 4911 樹狀陣列求逆序數 離散化

題意 最多可以交換k次,就最小逆序對數。思路 逆序數定理,當逆序對數大於0時,若ai要知道樹狀陣列的長度是資料範圍,由於資料比較大,所以要離散化。注意開long long。include using namespace std define mem a,b memset a,b,sizeof a d...

歸併排序(2 路歸併排序)

遞迴寫法 include define maxn 100 void merge int a,int l1,int r1,int l2,int r2 將陣列a的區間 l1,r1 和區間 l2,r2 合併為乙個有序區間 else while i r1 while j r2 for int i 0 i非遞...