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

            搜索

            最新隨筆

            最新評論

            評論排行榜

            狠狠88综合久久久久综合网 | 国产日韩久久久精品影院首页| 久久久久人妻一区二区三区vr | 久久精品国产精品亚洲精品 | 精品国产91久久久久久久a| 国产成人久久久精品二区三区 | 一本久久a久久精品亚洲| 狠狠色丁香婷综合久久| 午夜精品久久久久久久无码| 亚洲午夜久久久影院| 国产精品成人无码久久久久久| 久久久久久久久66精品片| 久久久久国产精品熟女影院| 人妻无码久久精品| 久久精品一区二区三区不卡| 久久久久久久91精品免费观看| 91久久成人免费| 99久久综合狠狠综合久久止| 久久精品国产亚洲AV忘忧草18| 2020最新久久久视精品爱| 久久久久久久久无码精品亚洲日韩 | 精品久久久久久久久午夜福利| 亚洲精品无码久久不卡| 成人资源影音先锋久久资源网| 久久无码国产| 国产精品伊人久久伊人电影| 久久精品国产精品亚洲精品| 亚洲精品无码久久久久| 久久精品国产亚洲AV香蕉| 一级做a爰片久久毛片看看| 国产精品欧美久久久久无广告| 久久精品国产半推半就| 国产一区二区三区久久精品| 97久久香蕉国产线看观看| 国产亚洲精品自在久久| 久久久久久午夜成人影院| 久久精品国产亚洲av高清漫画| 精品久久久久久久无码| 香蕉久久一区二区不卡无毒影院| 99久久精品国内| 久久久久这里只有精品|