• <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>

            糯米

            TI DaVinci, gstreamer, ffmpeg
            隨筆 - 167, 文章 - 0, 評(píng)論 - 47, 引用 - 0
            數(shù)據(jù)加載中……

            POJ 1990 MooFest 樹(shù)狀數(shù)組

            思路:
            開(kāi)四個(gè)樹(shù)狀數(shù)組。。
            arr_x,arr_y,arr_xy,arr_cnt
            分別統(tǒng)計(jì)y軸下:x的和、y的和、x*y的和、點(diǎn)的個(gè)數(shù)。
            把點(diǎn)按照x排序,x越大的點(diǎn)出現(xiàn)得越晚。
            從前往后推,每出現(xiàn)一個(gè)新的點(diǎn)的時(shí)候:
            Step1,將該點(diǎn)加入到四個(gè)數(shù)組中。
            Step2,對(duì)于高于它的點(diǎn),面積增量為 x*sum(y) - sum(x*y)。
            Step3,對(duì)于低于它的點(diǎn),面積增量為 sum(y) * (cnt * x - sum(x))
            最終得出結(jié)果。復(fù)雜度O(NlgN)。代碼 63ms。

            注意:
            需要用int64保存數(shù)組元素

            #include <stdio.h>

            #define MAX_X 20032
            #define MAX_Y 20032

            int cow[MAX_X], left, top, N;
            __int64 arr_x[MAX_Y], arr_y[MAX_Y], arr_xy[MAX_Y], arr_cnt[MAX_Y];

            __inline 
            int lowbit(int i)
            {
                
            return i & (i ^ (i - 1));
            }


            __inline __int64 sum(__int64 
            *arr, int i)
            {
                __int64 s;
                
                
            for (s = 0; i; i -= lowbit(i))
                    s 
            += arr[i];
                
            return s;
            }


            __inline 
            void insert(__int64 *arr, int i, __int64 val)
            {
                
            for (; i <= top; i += lowbit(i))
                    arr[i] 
            += val;
            }


            int main()
            {
                
            int i, x, y;
                __int64 s, sx, sy, sxy, c;

                freopen(
            "e:\\test\\in.txt""r", stdin);

                scanf(
            "%d"&N);
                left 
            = MAX_X;
                
            for (i = 0; i < N; i++{
                    scanf(
            "%d%d"&y, &x);
                    
            if (x < left)
                        left 
            = x;
                    
            if (y > top)
                        top 
            = y;
                    cow[x] 
            = y;
                }


                s 
            = 0;
                x 
            = left - 1;
                
            for (i = 0; i < N; i++{
                    
            for (x++!cow[x]; x++);
                    y 
            = cow[x];
                    insert(arr_x, y, x);
                    insert(arr_y, y, y);
                    insert(arr_xy, y, x 
            * y);
                    insert(arr_cnt, y, 
            1);
                    c 
            = sum(arr_cnt, y - 1);
                    sx 
            = sum(arr_x, y - 1);
                    s 
            += c*x*- sx*y;
                    sy 
            = sum(arr_y, top) - sum(arr_y, y - 1);
                    sxy 
            = sum(arr_xy, top) - sum(arr_xy, y - 1);
                    s 
            += x*sy - sxy;
                }


                printf(
            "%I64d\n", s);

                
            return 0;
            }

            posted on 2010-03-14 17:39 糯米 閱讀(389) 評(píng)論(0)  編輯 收藏 引用 所屬分類: POJ

            久久夜色精品国产噜噜麻豆| 99久久精品久久久久久清纯| 久久99国产精一区二区三区| 久久天天躁夜夜躁狠狠| 国产精品九九久久免费视频 | 99久久国产综合精品五月天喷水 | 中文字幕乱码人妻无码久久| 久久久精品人妻无码专区不卡| 久久国产精品久久久| 精品久久久噜噜噜久久久| 亚洲欧美日韩久久精品第一区| 99久久国产精品免费一区二区| 亚洲午夜久久久影院伊人| 久久精品极品盛宴观看| 亚洲欧洲精品成人久久奇米网| 久久久久亚洲爆乳少妇无 | 亚洲Av无码国产情品久久| 久久国产热这里只有精品| 亚洲伊人久久综合影院| 欧美亚洲国产精品久久高清| 久久久久久精品久久久久| 国产成人无码精品久久久性色| 亚洲色欲久久久综合网东京热| 久久久久亚洲AV无码专区体验| 久久亚洲国产中v天仙www| 久久五月精品中文字幕| 久久国产劲爆AV内射—百度| 久久国产热精品波多野结衣AV| 久久亚洲精品中文字幕三区| 久久人人超碰精品CAOPOREN| 国内精品人妻无码久久久影院导航| 国产精品久久久久久吹潮| 久久99国产精品成人欧美| 亚洲乱码中文字幕久久孕妇黑人| 国产精品女同久久久久电影院| 狠狠色综合久久久久尤物| 午夜欧美精品久久久久久久| 国产成人99久久亚洲综合精品| 777午夜精品久久av蜜臀| www亚洲欲色成人久久精品| 亚洲va中文字幕无码久久 |