• <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ù)狀數(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ù)組來(lái)存儲(chǔ)部分元素的和,二維樹(shù)狀數(shù)組只需用二維數(shù)組來(lái)存儲(chǔ)即可,獲得和,修正的函數(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 若余 閱讀(395) 評(píng)論(0)  編輯 收藏 引用


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


            導(dǎo)航

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

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆檔案(16)

            搜索

            最新隨筆

            最新評(píng)論

            評(píng)論排行榜

            久久久久99精品成人片试看| 久久久久久亚洲精品成人| 久久99国产一区二区三区| 久久伊人色| 亚洲AV无码一区东京热久久 | 久久人人爽人人爽人人av东京热 | 久久精品国产精品亚洲毛片| 精品熟女少妇a∨免费久久| 91精品国产综合久久香蕉| 国产精品伊人久久伊人电影| 国产毛片欧美毛片久久久| 久久久久九九精品影院| 久久人妻少妇嫩草AV无码专区| 国产香蕉97碰碰久久人人| 亚洲中文字幕无码久久2017| 91精品国产综合久久香蕉 | 日韩人妻无码精品久久久不卡| 国产一区二区三区久久| 狠狠色丁香久久婷婷综合| 日韩AV毛片精品久久久| 国产精品狼人久久久久影院 | 性高朝久久久久久久久久| 亚洲国产另类久久久精品 | 日产精品99久久久久久| 久久精品视频一| 久久免费视频6| 精品视频久久久久| 久久伊人精品青青草原高清| 久久久久久久久无码精品亚洲日韩| 热久久最新网站获取| 模特私拍国产精品久久| 国产精品久久久久久五月尺| 久久夜色撩人精品国产小说| 国産精品久久久久久久| 国产午夜电影久久| 久久93精品国产91久久综合| 中文字幕一区二区三区久久网站| 久久国产精品-久久精品| 狠色狠色狠狠色综合久久| 久久se精品一区二区| 热久久这里只有精品|