博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1452 二维树状数组
阅读量:6828 次
发布时间:2019-06-26

本文共 1525 字,大约阅读时间需要 5 分钟。

  每一种颜色存一颗二维树状数组,然后直接做就行了。

/**************************************************************    Problem: 1452    User: BLADEVIL    Language: C++    Result: Accepted    Time:4844 ms    Memory:36904 kb****************************************************************/ //By BLADEVIL#include 
#include
#define maxn 301#define maxc 101 using namespace std; int map[maxn][maxn];int n,m,task;struct rec{    int c[maxn][maxn];    rec(){memset(c,0,sizeof c);}    void change(int i,int j,int d){        for (int x=i;x<=n;x+=x&-x)            for (int y=j;y<=m;y+=y&-y)                c[x][y]+=d;    }    int sum(int i,int j){        int ans=0;        for (int x=i;x;x-=x&-x)            for (int y=j;y;y-=y&-y)                ans+=c[x][y];        return ans;    }    int sum(int x,int y,int xx,int yy){        return sum(xx,yy)-sum(x-1,yy)-sum(xx,y-1)+sum(x-1,y-1);    }} w[maxc]; void change(int x,int y,int z){    int k=map[x][y];    w[k].change(x,y,-1);    w[z].change(x,y,1);    map[x][y]=z;} int main(){    int x,y,xx,yy,z;    scanf("%d%d",&n,&m);    for (int i=1;i<=n;i++)        for (int j=1;j<=m;j++) scanf("%d",&map[i][j]),w[map[i][j]].change(i,j,1);    scanf("%d",&task);    while (task--){        int k; scanf("%d",&k);        if (k==1){            scanf("%d%d%d",&x,&y,&z);            change(x,y,z);        } else {            scanf("%d%d%d%d%d",&x,&xx,&y,&yy,&z);            printf("%d\n",w[z].sum(x,y,xx,yy));        }    }    return 0;   }

 

转载于:https://www.cnblogs.com/BLADEVIL/p/3569685.html

你可能感兴趣的文章
自定义jQuery插件Step by Step
查看>>
linux下编译安装apache
查看>>
PHP采集curl应用的一点小疑惑
查看>>
awstats 日志分析工具linux下的安装和使用
查看>>
css实现圆角三角形例子(无图片)
查看>>
最全的spark基础知识解答
查看>>
一些硬盘相关知识
查看>>
创建、删除表
查看>>
Java继承中成员方法的overload(重载/过载)
查看>>
C#的Timer
查看>>
SQL多表查询
查看>>
V4L2应用程序框架-二【转】
查看>>
CDN网络(一)之典型的CND架构与HTTP协议的缓存控制
查看>>
opps kio
查看>>
SQL截取字符串函数
查看>>
性能测试工具Locust
查看>>
The POM for XXX:jar:${com.ld.base.service.version} is missing, no dependency information available
查看>>
线程管理:守护线程的创建和运行
查看>>
UML从需求到实现---类图(1)
查看>>
iOS时间问题
查看>>