BZOJ——1452
来源:互联网 发布:centos 7 五笔输入法 编辑:程序博客网 时间:2024/05/16 03:57
好久没写博了= =
描述
输入
产量
样品输入
样品输出
1
2
2
暗示
统计答案时我们可以考虑维护前缀和,那么做个差就行了,由于颜色数量非常少,所以我们可以考虑对每个颜色单独维护与计算。
而每次修改颜色时,他不会对左上角产生贡献,对右上,左下及右下的前缀和都会产生贡献。这让人想到什么?没错,就用二维树状数组维护一下就好了,几乎模板题。
那可以用线段树搞么,似乎可以,但是留意一下空间只给了64MB,线段树秒秒钟MLE啊。卡空间有时候很讨厌。
参考代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int read(){ int x=0,f=1; char ch=getchar(); while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();} while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();} return x*f;}int n,m,q;int zt[310][310];struct Treenode{ int tree[310][310]; Treenode(){memset(tree,0,sizeof(tree));} int lowbit(int x){return x&-x;} void change(int x,int y,int del) { for (int i=x; i<=n; i+=lowbit(i)) for (int j=y; j<=m; j+=lowbit(j)) tree[i][j]+=del; } int query(int x,int y) { int ans=0; for (int i=x; i; i-=lowbit(i)) for (int j=y; j; j-=lowbit(j)) ans+=tree[i][j]; return ans; } int ask(int x1,int y1,int x2,int y2) { return query(x2,y2)-query(x2,y1-1)-query(x1-1,y2)+query(x1-1,y1-1); }}color[110];int main(){ n=read(); m=read(); for (int i=1; i<=n; i++) for (int col,j=1; j<=m; j++) col=read(),color[col].change(i,j,1),zt[i][j]=col; q=read(); for (int i=1; i<=q; i++) { int opt=read(),x1,y1,x2,y2,col; if (opt==1) { x1=read(),y1=read(),col=read(); color[zt[x1][y1]].change(x1,y1,-1); zt[x1][y1]=col; color[col].change(x1,y1,1); continue; } x1=read(),x2=read(),y1=read(),y2=read(),col=read(); printf("%d\n",color[col].ask(x1,y1,x2,y2)); } return 0;}
阅读全文
0 0
- BZOJ——1452
- 2208——bzoj
- BZOJ——4240
- 点分治专题——bzoj 1468 &bzoj 2152 题解
- BZOJ 2818——Gcd
- [二维树状数组]BZOJ 1452—— [JSOI2009]Count
- BZOJ 1452
- bzoj 1026——windy 数
- 3224普通平衡树——bzoj
- [bitset]BZOJ 3687——简单题
- [分块]BZOJ 4216——Pig
- BZOJ——2342双倍回文
- BZOJ 3100 排列——单调队列
- [左偏树]BZOJ 2809——[Apio2012]dispatching
- 题目推荐—BZOJ 水题推荐
- 【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers
- BZOJ 2958: 序列染色 && BZOJ 3193: [JLOI2013]地形生成 —— 肆虐的DP
- 【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers
- 【CodeForces
- in typeof instanceof ===这些运算符有什么作用
- JAVA集合类(大公司面试喜欢问的)
- React Native 生命周期
- hdu 6129 Just do it (杨辉三角)
- BZOJ——1452
- SharePreferences源码分析(commit与apply的区别以及原理)
- java测试FTP服务器的上传、下载、删除文件
- 微信小程序:自定义弹出层
- 安卓开发之eclipse环境配置
- 解析xml的几种方法
- 利用navicat向mysql数据库导入数据时出现1062
- 你可能没听过的11个Python库
- iOS SnowAnimation(下雪动画)~demo