锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久九九久精品国产,日本精品久久久久久久久免费,久久婷婷五月综合97色直播http://www.shnenglu.com/tianlearn-language/category/14163.htmlzh-cnWed, 23 Mar 2011 08:07:04 GMTWed, 23 Mar 2011 08:07:04 GMT60poj 2299 Ultra-QuickSort 鏍戠姸鏁扮粍http://www.shnenglu.com/tianlearn-language/archive/2011/03/16/142011.html鐢板叺鐢板叺Wed, 16 Mar 2011 12:49:00 GMThttp://www.shnenglu.com/tianlearn-language/archive/2011/03/16/142011.htmlhttp://www.shnenglu.com/tianlearn-language/comments/142011.htmlhttp://www.shnenglu.com/tianlearn-language/archive/2011/03/16/142011.html#Feedback0http://www.shnenglu.com/tianlearn-language/comments/commentRss/142011.htmlhttp://www.shnenglu.com/tianlearn-language/services/trackbacks/142011.html姹傞嗗簭瀵規暟錛屾爲鐘舵暟緇?br>
鏁版嵁鑼冨洿杈冨ぇ錛岃紱繪暎鍖栥?br>
緇欐瘡涓涓暟鎹竴涓猧d錛?絎琲涓暟鎹殑id涓篿銆?鐒跺悗浠庡皬鍒板ぇ鎺掑簭錛屽浜庢瘡涓猧d鍋?ans += read(n) - read(array[i].id)錛宺ead(n) - read(array[i].id)琛ㄧず鍘熸潵鍦ㄥ綋鍓嶆暟鐨勫悗闈紙鍏秈d澶т簬褰撳墠鏁扮殑id錛夛紝
鐜板湪鍦ㄥ綋鍓嶆暟鍓嶉潰鐨勬暟涓暟錛屼篃灝辨槸閫嗗簭瀵規暟銆?/span>


#include<iostream>
#include
<cstring>
#include
<cstdio>
#include
<algorithm>
using namespace std;
const int MAXVAL = 500005;

int tree[MAXVAL] ;
struct Type
{
    
int num, id;
};

int n;
Type array[MAXVAL];

void update(int idx, int inc)  //鏇存柊idx鐨勯鐜?/span>
{
    
while(idx <= n)
    {
        tree[idx] 
+= inc;
        idx 
+= (idx & - idx);
    }
}

int read(int idx)   //璇誨彇1--idx鐨勯鐜囧拰
{
    
int sum = 0;
    
while(idx > 0)
    {
        sum 
+= tree[idx];
        idx 
-= (idx & - idx);
    }
    
return sum;
}

int readSingle(int idx) // 璇誨彇鏌愪釜浣嶇疆鐨勯鐜囷紝 O(lg MAXVAL)
{
     
int sum = tree[idx];
     
if(idx > 0)
     {
         
int z = idx - ( idx & - idx);  
         
         idx 
--;

         
while( idx != z)
         {
              sum 
-= tree[idx];

              idx 
-= (idx & - idx);
         }
     }

     
return sum;
}


bool cmp(const  Type &a, const Type &b)
{
    
return a.num < b.num;
}
int main()
{
    
while (scanf("%d",&n)  && n != 0)    
    {
        memset(array, 
0sizeof (array));
        memset(tree, 
0sizeof tree);

        
// read the data
        for(int i = 1; i <= n; i ++)
        {
            scanf(
"%d",&array[i].num);
            array[i].id 
= i;
        }
    
        sort(array 
+ 1, array + 1 + n, cmp);

        
long long ans = 0;
        
for(int i = 1; i <= n; i ++)
        {
            
//printf( "cal   %d \n",read(n) - read(array[i].id));
            ans += read(n) - read(array[i].id);
            update(  array[i].id, 
1);
        }
            
        cout 
<< ans << endl;
    }


    
return 0;
}


鐢板叺 2011-03-16 20:49 鍙戣〃璇勮
]]>
99久久免费国产精精品| 国产AⅤ精品一区二区三区久久| 久久九九免费高清视频| 久久精品亚洲精品国产欧美| 欧美麻豆久久久久久中文| 一级做a爰片久久毛片毛片| 亚洲综合日韩久久成人AV| 97久久精品无码一区二区天美| 久久久久久a亚洲欧洲aⅴ| 国产精品久久久久乳精品爆| 国产精品久久久久久久人人看| 狠狠色婷婷综合天天久久丁香 | 久久久久AV综合网成人 | 精品无码人妻久久久久久| 波多野结衣久久| 18岁日韩内射颜射午夜久久成人 | 少妇久久久久久被弄高潮| 国产精品无码久久综合网| 国产毛片欧美毛片久久久| 国产精品久久久久久久午夜片 | 久久亚洲国产午夜精品理论片| 中文成人久久久久影院免费观看| 国内精品久久久久久99| 亚洲国产精品狼友中文久久久| 久久久久四虎国产精品| 久久综合狠狠综合久久综合88 | 亚洲国产精品狼友中文久久久| 久久综合久久综合久久| 久久久亚洲欧洲日产国码aⅴ| 久久免费看黄a级毛片| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久精品国产精品亚洲人人| 国产精品一久久香蕉国产线看观看| 一本色道久久综合亚洲精品| 中文字幕无码久久精品青草| 人妻无码久久精品| 久久最新免费视频| 久久久精品视频免费观看| 国产精品无码久久四虎| 久久精品国产亚洲av瑜伽| 国产午夜精品理论片久久 |