锘??xml version="1.0" encoding="utf-8" standalone="yes"?>激情久久五月,欧美激情五月,国产伦精品一区二区三区高清http://m.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://m.shnenglu.com/tianlearn-language/archive/2011/03/16/142011.html鐢板叺鐢板叺Wed, 16 Mar 2011 12:49:00 GMThttp://m.shnenglu.com/tianlearn-language/archive/2011/03/16/142011.htmlhttp://m.shnenglu.com/tianlearn-language/comments/142011.htmlhttp://m.shnenglu.com/tianlearn-language/archive/2011/03/16/142011.html#Feedback0http://m.shnenglu.com/tianlearn-language/comments/commentRss/142011.htmlhttp://m.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 鍙戣〃璇勮
]]>
久久久久久伊人高潮影院| 九九久久精品无码专区| 国产美女久久精品香蕉69| 久久久久夜夜夜精品国产| 久久久久国产精品麻豆AR影院 | 国产亚洲美女精品久久久2020| 久久久一本精品99久久精品66| 国产91久久综合| 香蕉久久av一区二区三区| 久久99精品免费一区二区| 久久精品中文无码资源站| 亚洲国产精品综合久久一线| 丰满少妇人妻久久久久久| 色狠狠久久综合网| 国产午夜电影久久| 久久国产免费观看精品3| 久久久久久久久波多野高潮| 国产成人久久777777| 精品免费久久久久久久| 久久99久国产麻精品66| 中文字幕久久亚洲一区| 精品久久久无码中文字幕| 久久久久久狠狠丁香| 国产精品久久一区二区三区| 性色欲网站人妻丰满中文久久不卡| 欧美亚洲日本久久精品| 国内精品伊人久久久久网站| 精品国产91久久久久久久| 国产精品9999久久久久| 麻豆AV一区二区三区久久 | 久久久久久亚洲精品无码| 久久国产精品-国产精品| 99久久国产综合精品麻豆| 久久国产免费观看精品3| 国产精品久久成人影院| 99久久人妻无码精品系列| 97久久久精品综合88久久| 久久亚洲高清观看| 久久久久无码国产精品不卡| 久久亚洲欧洲国产综合| 国内精品久久国产|