zoukankan      html  css  js  c++  java
  • Vijos1512 SuperBrother打鼹鼠

    SuperBrother打鼹鼠

    Vijos链接

    题目描述:

    在一个矩阵中,有三种操作:

    1.后面跟着3个数x,y,k,表示在点(x,y)处新出现了k只鼹鼠。

    2.后面跟着4个数x1,y1,x2,y2,表示询问矩形(x1,y1)-(x2,y2)内的鼹鼠数量。

    3.表示结束。

    思路:

    一个树状数组就可以搞定了,不过需要二维的树状数组,才能实现二维的区间查询。

    代码:

     1 #include<cstdio>
     2 long long n,m,dis[10010][10010],tot,a,b,c,d;
     3 using namespace std;
     4 void add(long long x,long long y,long long z){
     5     for(long long i=x;i<=n;i+=i&(-i))
     6         for(long long j=y;j<=n;j+=j&(-j))
     7             dis[i][j]+=z;
     8 }
     9 long long q(long long x,long long y){
    10     tot=0;
    11     for(long long i=x;i;i-=i&(-i))
    12         for(long long j=y;j;j-=j&(-j))
    13             tot+=dis[i][j];
    14     return tot;
    15 }
    16 int main(){
    17     scanf("%lld",&n);
    18     while(1){
    19         scanf("%lld",&m);
    20         if(m==1){
    21             scanf("%lld%lld%lld",&a,&b,&c);
    22             a++;b++;
    23             add(a,b,c);
    24         }
    25         else
    26         if(m==2){
    27             scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
    28             a++;b++;c++;d++;
    29             printf("%lld
    ",q(c,d)-q(a-1,d)-q(c,b-1)+q(a-1,b-1));
    30         }
    31         else
    32             break;
    33     }
    34     return 0;
    35 }
    View Code
  • 相关阅读:
    dubbo的超时机制
    今天又遇到之前的问题,后端返回数据long到前端失真
    如何在一台机子上配置两个github
    当sum函数返回null时处理
    Linux中zookeeper安装
    Linux常用指令
    sql执行顺序
    固定时间刷新某个固定值 java
    docker基础
    python之CSS
  • 原文地址:https://www.cnblogs.com/jsawz/p/6869386.html
Copyright © 2011-2022 走看看