• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            gzwzm06

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              1 隨筆 :: 52 文章 :: 17 評論 :: 0 Trackbacks
             1#include <cstdio>
             2#include <algorithm>
             3using namespace std;
             4
             5const int SIZE = 100005;
             6
             7struct RANGE
             8{
             9    int m_S, m_E;
            10    int m_p;
            11
            12    bool operator < (const RANGE& other) const
            13    {
            14        if ( m_E != other.m_E )
            15            return (m_E > other.m_E);
            16        
            17        return (m_S < other.m_S);
            18    }

            19}
            cow[SIZE];
            20
            21int N, result[SIZE], C[SIZE], max_N;
            22
            23int LowBit( const int & k )
            24{
            25    return (k & (-k));
            26}

            27
            28void Modify(int num, int value)
            29{
            30    while ( num <= max_N )
            31    {
            32        C[num] += value;
            33        num += LowBit(num);
            34    }

            35}

            36
            37int GetSum(int num)
            38{
            39    int sum = 0;
            40    while ( num > 0 )
            41    {
            42        sum += C[num];
            43        num -= LowBit(num);
            44    }

            45
            46    return sum;
            47}

            48
            49void Init()
            50{
            51    for ( int i = 0; i <= max_N; ++i )
            52    {
            53        C[i] = 0;
            54    }

            55}

            56
            57int main()
            58{
            59    int i;
            60
            61//    freopen("1.txt", "r", stdin);
            62    while ( scanf("%d"&N), N != 0 )
            63    {
            64        max_N = 0;
            65        for ( i = 0; i < N; ++i )
            66        {
            67            scanf("%d %d"&cow[i].m_S, &cow[i].m_E);
            68            cow[i].m_S++, cow[i].m_E++;
            69            cow[i].m_p = i;
            70
            71            if ( max_N < cow[i].m_E )
            72                max_N = cow[i].m_E;
            73        }

            74        Init();
            75
            76        sort(cow, cow + N);
            77
            78        for ( i = 0; i < N; ++i )
            79        {
            80            if ( i != 0 && cow[i].m_S == cow[i - 1].m_S && cow[i].m_E == cow[i - 1].m_E )
            81                result[cow[i].m_p] = result[cow[i - 1].m_p];
            82            else
            83                result[cow[i].m_p] = GetSum( cow[i].m_S );
            84
            85            Modify( cow[i].m_S, 1 );
            86        }

            87
            88        for ( i = 0; i < N - 1++i )
            89            printf("%d ", result[i]);
            90        printf("%d\n", result[i]);
            91    }

            92    return 0;
            93}
            posted on 2009-04-11 16:50 閱讀(795) 評論(7)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)

            評論

            # re: POJ 2481(樹狀數(shù)組)[未登錄] 2010-05-30 21:48 Klion
            你好,請問,對于您的這段代碼
            for ( i = 0; i < N; ++i )
            79 {
            80 if ( i != 0 && cow[i].m_S == cow[i - 1].m_S && cow[i].m_E == cow[i - 1].m_E )
            81 result[cow[i].m_p] = result[cow[i - 1].m_p];
            82 else
            83 result[cow[i].m_p] = GetSum( cow[i].m_S );
            84
            85 Modify( cow[i].m_S, 1 );
            86 }
            我把其中的80行到84行改成如下的為什么不行呢?還請指教
            result[cow[i].m_p]= GetSum(cow[i].m_s);
            int j = i;
            while(j > 0 && cow[j].m_s == cow[j-1].m_s && cc[j].m_e == cc[j].m_e)
            j--;
            result[cow[i].m_p]= result[cow[i].m_p] - (i-j);

              回復(fù)  更多評論
              

            # re: POJ 2481(樹狀數(shù)組) 2010-05-30 22:22 gzwzm06
            我也不知道為什么,看不懂ls的代碼,好像這樣改,邏輯都變了  回復(fù)  更多評論
              

            # re: POJ 2481(樹狀數(shù)組) 2010-05-30 22:37 Klion
            @gzwzm06
            哦,我的代碼好像改錯(cuò)了
            應(yīng)該是這樣的
            result[cow[i].m_p]= GetSum(cow[i].m_s);
            int j = i;
            while(j > 0 && cow[j].m_s == cow[j-1].m_s && cow[j].m_e == cow[j].m_e)
            j--;
            result[cow[i].m_p]= result[cow[i].m_p] - (i-j);
            邏輯改了?不怎么懂,我的就是先對每個(gè)點(diǎn)GetSum一次,然后再在已經(jīng)Modify過的數(shù)據(jù)中找和它相同的,然后再減去這些相同的。
              回復(fù)  更多評論
              

            # re: POJ 2481(樹狀數(shù)組) 2010-05-30 23:24 gzwzm06
            && cow[j].m_s == cow[j-1].m_s && “cow[j].m_e == cow[j].m_e“
            為什么會(huì)兩個(gè)相同一起比較呢?是不是cow[j].m_e == cow[j - 1].m_e呢?  回復(fù)  更多評論
              

            # re: POJ 2481(樹狀數(shù)組) 2010-05-30 23:28 Klion
            @gzwzm06
            兩個(gè)相同一起比較也就是兩個(gè)區(qū)間是一樣的,起點(diǎn)和終點(diǎn)是相同的,和您的第80行比較的應(yīng)該是一樣的吧?  回復(fù)  更多評論
              

            # re: POJ 2481(樹狀數(shù)組) 2010-05-30 23:31 gzwzm06
            你再檢查下,cc[j].m_e == cc[j].m_e這個(gè)條件肯定是真的,沒有意義吧  回復(fù)  更多評論
              

            # re: POJ 2481(樹狀數(shù)組) 2010-05-30 23:39 Klion
            @gzwzm06
            哦,實(shí)在是不好意思,確實(shí)是那個(gè)地方,現(xiàn)在過了,謝謝了啊。  回復(fù)  更多評論
              

            偷窥少妇久久久久久久久| 久久国产色AV免费观看| 9191精品国产免费久久| 久久狠狠一本精品综合网| 青青青青久久精品国产h久久精品五福影院1421 | 久久99精品久久久久久噜噜| 久久久久久A亚洲欧洲AV冫| 麻豆精品久久久久久久99蜜桃| 成人综合伊人五月婷久久| 久久99毛片免费观看不卡| 国产高潮国产高潮久久久91| 久久亚洲国产最新网站| 国产亚洲欧美精品久久久| 亚洲国产精品狼友中文久久久| 久久亚洲日韩精品一区二区三区| 久久精品国产精品亚洲艾草网美妙 | 亚洲av日韩精品久久久久久a | 久久精品18| 久久这里只有精品18| 91久久精品电影| 久久综合九色综合网站| 欧洲性大片xxxxx久久久| 狠色狠色狠狠色综合久久| 久久久久久精品免费免费自慰| 狠狠精品久久久无码中文字幕| 久久久久久夜精品精品免费啦 | 漂亮人妻被中出中文字幕久久| 国产精品成人久久久久久久| 久久Av无码精品人妻系列| 国产一区二区久久久| 久久精品成人欧美大片| 91精品国产色综久久| 久久ZYZ资源站无码中文动漫| 久久精品国产日本波多野结衣| 国产成人精品久久亚洲高清不卡 | 久久99久久99精品免视看动漫| 亚洲国产精品婷婷久久| 国产产无码乱码精品久久鸭| 亚洲精品乱码久久久久久按摩 | 国产精品久久久久蜜芽| 一本色道久久综合狠狠躁篇|