• <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 二維樹狀數組

            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


            一維樹狀數組用一維數組來存儲部分元素的和,二維樹狀數組只需用二維數組來存儲即可,獲得和,修正的函數同一維數組差別不大。
            /*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的值,本人在此出錯,找半天錯誤不得
                    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 若余 閱讀(395) 評論(0)  編輯 收藏 引用

            導航

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

            統計

            常用鏈接

            留言簿

            隨筆檔案(16)

            搜索

            最新隨筆

            最新評論

            評論排行榜

            免费观看成人久久网免费观看| 精品久久久无码中文字幕天天| 中文字幕热久久久久久久| 精产国品久久一二三产区区别| 人妻少妇久久中文字幕一区二区 | 久久99精品久久久久久水蜜桃| 亚洲精品综合久久| 狠狠色噜噜狠狠狠狠狠色综合久久| 久久乐国产精品亚洲综合| 无码人妻少妇久久中文字幕蜜桃 | 久久久久久综合一区中文字幕| 久久人人爽人人爽人人片AV东京热| 色综合久久综合中文综合网| 久久久久综合国产欧美一区二区| 国产精品国色综合久久| 久久精品国产99国产精品导航 | 久久精品国产99国产精品亚洲| 久久综合狠狠色综合伊人| 亚洲国产精品无码久久久秋霞2 | 久久婷婷是五月综合色狠狠| 99久久99久久精品免费看蜜桃| 久久久久久久91精品免费观看| 久久青青草原精品影院| 久久久久久毛片免费播放| 丁香色欲久久久久久综合网| 亚洲欧美成人久久综合中文网| 精品久久久久中文字| 97久久精品人人做人人爽| 久久精品国产亚洲AV无码麻豆| 亚洲狠狠婷婷综合久久久久| 久久婷婷国产综合精品| 精品乱码久久久久久久| 日韩人妻无码精品久久久不卡| 欧美日韩精品久久久久| 久久国产成人| 日韩中文久久| 精品久久久久久中文字幕大豆网| 亚洲精品无码久久久久去q | 久久激情五月丁香伊人| 色综合久久天天综线观看| 久久99热这里只有精品66|