头像

愣头旺




离线:1天前


最近来访(1)
用户头像
cccjjjc0


题目描述

blablabla

样例

blablabla
```#include<iostream>
using namespace std;
typedef long long LL;
const int N=1e5+10;
int n;
int q[N],tmp[N];
LL merge_sort(int l, int r){
    if(l>=r) return 0;
    int mid = l+r>>1;
    LL res= merge_sort(l,mid )+merge_sort(mid+1,r);
    int k=0, i=l,j=mid+1;
    while(i<=mid && j<=r)
      if(q[i]<=q[j]) tmp[k++]=q[i++];
    else {
        tmp[k++] = q [j++];
        res+=mid-i+1;
    }
    while(i<=mid ) tmp[k++] =q[i++];
    while(j<=r) tmp[k++]=q[j++];
    for(int i=l,j=0;i<=r;i++,j++){
        q[i]=tmp[j];
    }
    return res;
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>q[i];
    }
    cout<<merge_sort(0,n-1)<<endl;
    return 0;
}


----------

### 算法1
##### (暴力枚举)  $O(n^2)$

blablabla

#### 时间复杂度

#### 参考文献

#### C++ 代码

blablabla


----------

### 算法2
##### (暴力枚举)  $O(n^2)$

blablabla

#### 时间复杂度

#### 参考文献


#### C++ 代码

blablabla
```



活动打卡代码 AcWing 786. 第k个数

//这里填你的代码^^ //注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~#include[HTML_REMOVED]
using namespace std;
const int N=1e5+10;
int q[N];
int quick_search(int l,int r,int k){
if(l==r) return q[l];
int x=q[(l+r)>>1] , i=l-1,j=r+1;
while(i[HTML_REMOVED]x);
if(i[HTML_REMOVED]> n >> k;
for(int i=0;i<n;i++){
scanf(“%d”,q+i);
}
cout<< quick_search(0,n-1,k)<<endl;
return 0;
}



活动打卡代码 AcWing 787. 归并排序

//这里填你的代码^^ //注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~#include[HTML_REMOVED]
using namespace std;
const int N=1000010;
int n;
int q[N],tmp[N];
void merge_sort(int q[] ,int l,int r){

if(l>=r) return;
int mid = (l+r)>>1;
merge_sort(q,l,mid); merge_sort(q,mid+1,r);
int k=0 , i = l,j = mid + 1;
while(i<=mid && j<=r){
if(q[i]<=q[j]) tmp[k++]=q[i++];
else tmp[k++]=q[j++];
}
while(i<=mid )tmp[k++]=q[i++];
while(j<=r )tmp[k++]=q[j++];
for( i=l,j=0;i<=r ;i++ ,j++){
    q[i]=tmp[j];
}

}
int main(){
scanf(“%d”,&n);
for(int i=0;i<n;i){
scanf(“%d”,q+i);
}
merge_sort(q , 0 , n-1);
for(int i= 0;i < n; i
){
printf(“%d “,q[i]);
}
return 0;
}



活动打卡代码 AcWing 785. 快速排序

include[HTML_REMOVED]

using namespace std;
const int N=1e6+10;
int p[N];
int n;
void quick_sort(int p[],int l,int r){
if(l>=r) return;
int x =p[(l+r)>>1],i=l-1,j=r+1;
while(i[HTML_REMOVED]x);
if(i<j) swap(p[i],p[j]);
}
quick_sort(p,l,j);
quick_sort(p,j+1,r);
}

int main(){
scanf(“%d”,&n);
for(int i=0;i<n;i){
scanf(“%d”,p+i);
}
quick_sort(p,0,n-1);
for(int i=0;i<n;i
){
printf(“%d “,p[i]);
}
}