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

            poj 1195 Mobile phones 二維樹狀數(shù)組

            Mobile phones
            Time Limit: 5000MS Memory Limit: 65536K
            Total Submissions: 7087 Accepted: 3030

            Description

            Suppose that the fourth generation mobile phone base stations in the Tampere area operate as follows. The area is divided into squares. The squares form an S * S matrix with the rows and columns numbered from 0 to S-1. Each square contains a base station. The number of active mobile phones inside a square can change because a phone is moved from a square to another or a phone is switched on or off. At times, each base station reports the change in the number of active phones to the main base station along with the row and the column of the matrix.

            Write a program, which receives these reports and answers queries about the current total number of active mobile phones in any rectangle-shaped area.

            Input

            The input is read from standard input as integers and the answers to the queries are written to standard output as integers. The input is encoded as follows. Each input comes on a separate line, and consists of one instruction integer and a number of parameter integers according to the following table.

            The values will always be in range, so there is no need to check them. In particular, if A is negative, it can be assumed that it will not reduce the square value below zero. The indexing starts at 0, e.g. for a table of size 4 * 4, we have 0 <= X <= 3 and 0 <= Y <= 3.

            Table size: 1 * 1 <= S * S <= 1024 * 1024
            Cell value V at any time: 0 <= V <= 32767
            Update amount: -32768 <= A <= 32767
            No of instructions in input: 3 <= U <= 60002
            Maximum number of phones in the whole table: M= 2^30

            Output

            Your program should not answer anything to lines with an instruction other than 2. If the instruction is 2, then your program is expected to answer the query by writing the answer as a single line containing a single integer to standard output.

            Sample Input

            0 4
            1 1 2 3
            2 0 0 2 2
            1 1 1 2
            1 1 2 -1
            2 1 1 2 3
            3
            

            Sample Output

            3
            4

            Source


            一維樹狀數(shù)組用一維數(shù)組來存儲部分元素的和,二維樹狀數(shù)組只需用二維數(shù)組來存儲即可,獲得和,修正的函數(shù)同一維數(shù)組差別不大。
            /*Source Code

            Problem: 1195  User: y09 
            Memory: 4956K  Time: 579MS 
            Language: C++  Result: Accepted 

            Source Code 
            */

            #include 
            <stdio.h>
            const int MAX=1200;
            int c[MAX][MAX];
            int n;
            int LowBit(int t)
            {
                
            return t&(t^(t-1));
            }


            int Sum(int endx,int endy)
            {
                
            int sum=0;
                
            int temp=endy;
                
            while(endx>0)
                
            {
                    endy
            =temp;//注意記錄endy的值,本人在此出錯(cuò),找半天錯(cuò)誤不得
                    while (endy>0)
                    
            {
                        sum
            +=c[endx][endy];
                        endy
            -=LowBit(endy);
                    }

                    
                    endx
            -=LowBit(endx);
                }

                
            return sum;
            }

            void plus(int posx,int posy,int num)
            {
                
            int temp=posy;
                
            while (posx <=n)
                
            {
                    posy
            =temp;
                    
            while(posy<=n)
                    
            {
                        c[posx][posy]
            +=num;
                        posy
            +=LowBit(posy);
                    }

                    posx
            +=LowBit(posx);
                }

            }

            int GetSum(int l,int b,int r,int t)
            {
                
            return Sum(r,t)-Sum(r,b-1)-Sum(l-1,t)+Sum(l-1,b-1);
            }

            int main()
            {
                
            int I;
                
            int x,y,a;
                
            int l,b,r,t;
                
            while(scanf("%d",&I))
                
            {
                    
            switch (I)
                    
            {
                    
            case 0:
                        scanf(
            "%d",&n);
                        
            break;
                    
            case 1:
                        scanf(
            "%d%d%d",&x,&y,&a);
                        plus(x
            +1,y+1,a);
                        
            break;
                    
            case 2:
                        scanf(
            "%d%d%d%d",&l,&b,&r,&t);
                        printf(
            "%d\n",GetSum(l+1,b+1,r+1,t+1));
                        
            break;
                    
            case 3:
                        
            return 0;
                        
                    }

                }

                
                
            return 0;
            }

            posted on 2010-08-27 16:28 若余 閱讀(384) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            導(dǎo)航

            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆檔案(16)

            搜索

            最新隨筆

            最新評論

            評論排行榜

            狠狠干狠狠久久| 亚洲va中文字幕无码久久不卡 | 东京热TOKYO综合久久精品| 久久亚洲视频| 无码人妻少妇久久中文字幕| 国产精品伊人久久伊人电影 | 国产精品久久久久影视不卡| 久久久久久亚洲精品成人| 国产精品久久久久a影院| 四虎国产精品成人免费久久| 欧美国产精品久久高清| 久久久久无码精品| 久久久久久国产精品无码下载| 香蕉久久久久久狠狠色| 99久久香蕉国产线看观香| 99久久这里只精品国产免费| 亚洲AV成人无码久久精品老人| 久久精品夜夜夜夜夜久久| 97久久久久人妻精品专区| 99久久精品九九亚洲精品| 99久久免费国产精品| 亚洲国产高清精品线久久 | 中文字幕久久亚洲一区| 日韩久久久久中文字幕人妻| 久久亚洲国产最新网站| 亚洲AV无码一区东京热久久| 久久国产精品-国产精品| 久久93精品国产91久久综合| 午夜精品久久久久9999高清| 无码人妻精品一区二区三区久久久| 久久亚洲AV成人出白浆无码国产| 99国内精品久久久久久久| 欧美久久久久久| 日本精品久久久久中文字幕| 无码任你躁久久久久久久| 久久99精品国产自在现线小黄鸭 | 久久99国产综合精品免费| 久久久久久久综合日本| 99久久精品午夜一区二区| 亚洲AⅤ优女AV综合久久久| 99久久免费国产精品热|