zoukankan      html  css  js  c++  java
  • POJ2299+逆序数

    归并排序!!!!!!!!!!

     1 /*
     2 归并排序+求逆序数
     3 */
     4 #include<stdio.h>
     5 #include<string.h>
     6 #include<algorithm>
     7 #include<stdlib.h>
     8 using namespace std;
     9 typedef __int64 int64;
    10 const int maxn = 500005;
    11 int64 a[ maxn ],Sort[ maxn ];
    12 int64 res;
    13 
    14 void init(){
    15     res = 0;
    16 }
    17 
    18 void merge( int L,int R ){
    19     int mid = (L+R)/2;
    20     int i = L;
    21     int j = mid+1;
    22     int pos = L;
    23     while( i<=mid&&j<=R ){
    24         if( a[i]<a[j] )
    25             Sort[ pos++ ] = a[i++];
    26         else{
    27             Sort[ pos++ ] = a[j++];
    28             res += (mid-i+1);
    29         }
    30     }
    31     while( i<=mid )
    32         Sort[ pos++ ] = a[i++];
    33     while( j<=R )
    34         Sort[ pos++ ] =  a[j++];
    35     for( int k=L;k<=R;k++ )
    36         a[k] = Sort[k];
    37 }
    38 
    39 void merge_sort( int L,int R ){
    40     int mid = (L+R)/2;
    41     if( L<R ){
    42         merge_sort( L,mid );
    43         merge_sort( mid+1,R );
    44         merge( L,R );
    45     }
    46     return ;
    47 }
    48 
    49 int main(){
    50     int n;
    51     while( scanf("%d",&n),n ){
    52         for( int i=1;i<=n;i++ )
    53             scanf("%I64d",&a[i]);
    54         init();
    55         merge_sort( 1,n );
    56         printf("%I64d
    ",res);
    57     }
    58     return 0;
    59 }
    View Code
    keep moving...
  • 相关阅读:
    取目标描述
    DCLF RCVF SNDF SNDRCVF等用法
    CL过程监控JOB的错误消息
    取用户配置文件属性
    SNDBRKMSG 例子
    信息操作
    文件下载解决中文乱码
    table行的上移下移 上下移动
    常用表操作Sql语句
    sql删除重复行
  • 原文地址:https://www.cnblogs.com/xxx0624/p/3207575.html
Copyright © 2011-2022 走看看