日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > hdu2838Cow Sorting樹狀數組求逆序對

hdu2838Cow Sorting樹狀數組求逆序對

來源:程序員人生   發布時間:2015-03-11 08:24:05 閱讀次數:3260次
//對數列中的1個數,在它前面比它大的1定要和它交換
//在它后面比它小的1定得和它交換
//可以用樹狀數組存入每個數在它之前比它小的數的個數
//那末(i⑴)-total[i]為在它前面比它大的數的個數
//然后在所有數都存入樹狀數組后用getsum(num[i])可以求出全部數列中比這個數小的數的個數
//那末getsum(num[i])⑴-total[i]則為在它以后比它小的數的個數
//ans+=num[i]*(i⑵+getsum(num[i])⑵*total[i]);
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=100010;
__int64 total[maxn];
int tree[maxn];
int num[maxn];
int lowbit(int i)
{
    return (i&(-i));
}
int getsum(int i)
{
    int sum=0;
    while(i>0)
    {
        sum+=tree[i];
        i-=lowbit(i);
    }
    return sum;
}
void update(int i,int dx)
{
    while(i<maxn)
    {
        tree[i]+=dx;
        i+=lowbit(i);
    }
}
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int a;int i;
        __int64 ans=0;
        memset(tree,0,sizeof(tree));
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a);
            num[i]=a;
            total[i]=getsum(a);
            update(a,1);
        }


        for(i=1;i<=n;i++)
        {
          ans+=num[i]*(i⑵+getsum(num[i])⑵*total[i]);
        }
        printf("%I64d ",ans);
    }
    return 0;
}





































生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 99re国产| 欧美专区在线观看 | 久久久久久穴 | 黑人巨大精品欧美一区免费视频 | 日韩欧美在线免费 | 亚洲国产精品人人爽夜夜爽 | 一二三区免费 | 日韩国产欧美一区二区三区 | 成年国产 | 看片一区二区 | 亚洲欧洲免费视频 | 99久久夜色精品国产亚洲96 | 青青草亚洲| 九九久久精品 | 黄网站色大毛片 | 午夜欧美一区二区三区在线播放 | 成人一区在线视频 | 不卡在线一区 | 可以在线看的av | 一区二区三区中文字幕 | 不卡一区二区三区四区 | 国产精品91一区二区三区 | 日韩av福利 | 国产精品99久久久久久动医院 | 男性吹潮教程chinese | 99久久久无码国产精品 | 伊人久久亚洲 | 午夜精品久久久久久久96蜜桃 | 91国偷自产一区二区使用方法 | 久久专区 | 麻豆视频免费在线播放 | 成人在线观 | 黄色片s色 | 国产精品一区在线播放 | 中文字幕+乱码+中文乱码图片 | 日韩在线视频一区二区三区 | 不卡网 | 国产精品久久久一区二区三区 | www.国产毛片 | 日韩成人在线播放 | 免费成人av在线 |