锘??xml version="1.0" encoding="utf-8" standalone="yes"?>激情久久五月,欧美激情五月,国产伦精品一区二区三区高清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 鍙戣〃璇勮
]]>
久久综合久久综合亚洲| 久久综合伊人77777麻豆| 久久综合国产乱子伦精品免费| 免费精品国产日韩热久久| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 久久久久99精品成人片直播| 国内精品久久人妻互换| 久久午夜福利电影| 奇米影视7777久久精品| 精品久久久久久久久久久久久久久 | 精品久久久无码人妻中文字幕豆芽| 99久久免费国产精精品| 久久九色综合九色99伊人| 久久精品国产亚洲av麻豆蜜芽| 国产精品久久久久久久久鸭| 色妞色综合久久夜夜| 久久这里只有精品首页| 人人狠狠综合久久88成人| 污污内射久久一区二区欧美日韩| 国产精品久久久久久久久| 中文字幕热久久久久久久| 久久久网中文字幕| 91精品久久久久久无码| 久久99国产综合精品| 伊人久久大香线蕉综合5g| 国产精品久久久99| 久久这里只有精品久久| 久久九九全国免费| 91久久精品91久久性色| 久久香蕉国产线看观看精品yw| 久久久国产99久久国产一| 久久综合久久伊人| 麻豆久久| 久久婷婷人人澡人人爽人人爱| 亚洲AⅤ优女AV综合久久久| 久久久精品视频免费观看 | 热99RE久久精品这里都是精品免费 | 亚洲国产精品久久久久网站| 97久久精品人妻人人搡人人玩| 日产精品久久久久久久| 久久99亚洲网美利坚合众国|