51nod1210
题解:
二维树状数组,再矩阵推一下
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=;
int n,m,q;
LL T[][N][N];
int TN,TM;
void add(LL (*T)[N],int x,int y,LL v)
{
if (!x||!y)return;
for (int i=x;i<=TN;i+=i&-i)
for (int j=y;j<=TM;j+=j&-j)T[i][j]+=v;
}
LL sum(LL (*T)[N],int x,int y)
{
if (!x||!y)return 0LL;
LL v=;
for (int i=x;i;i-=i&-i)
for (int j=y;j;j-=j&-j)v+=T[i][j];
return v;
}
void add(int x,int y,LL v)
{
add(T[],x,y,v);
add(T[],x,y,v*(-x));
add(T[],x,y,v*(-y));
add(T[],x,y,v*(-x)*(-y));
}
LL sum(int x, int y)
{
return (x+)*(y+)*sum(T[],x,y)+(y+)*sum(T[],x,y
)+(x+)*sum(T[],x,y)+sum(T[],x,y);
}
void add(int x1,int y1,int x2,int y2,LL v)
{
add(x1,y1,v);
add(x2+,y1,-v);
add(x1,y2+,-v);
add(x2+,y2+,v);
}
LL sum(int x1, int y1, int x2, int y2)
{
return sum(x2,y2)-sum(x1-,y2)-sum(x2,y1-)+sum(x1-,y1-);
}
int main()
{
scanf("%d%d%d",&n,&m,&q);
TN=n;TM=m;
for (int i=;i<=m;i++)
for (int j=;j<=n;j++)
{
int x;
scanf("%d",&x);
add(j,i,j,i,x);
}
for (int i=;i<q;i++)
{
int x1,y1,x2,y2,z,a;
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&z,&a);
LL s = sum(x1, y1, x2, y2);
if (s<(LL)z*(x2-x1+)*(y2-y1+))add(x1,y1,x2,y2,a);
}
for (int i=;i<=m;i++)
for (int j=;j<=n;j++)
printf("%lld%c",sum(j,i,j,i),j==n?'\n':' ');
}
51nod1210的更多相关文章
随机推荐
- JavaScript  各种验证收集
			filter或者forEach函数,可能是因为你的浏览器还不够新,暂时不支持新标准的函数,你可以使用如下方式自己定义: if (!Array.prototype.forEach) { Array.pr ... 
- 【Maven】2.使用Nexus3搭建Maven私服+上传第三方jar包到本地maven仓库
			参考文章: http://www.cnblogs.com/luotaoyeah/p/3791966.html --------------------------------------------- ... 
- Apache Kylin大数据分析平台的演进
			转:http://mt.sohu.com/20160628/n456602429.shtml 我是来自Kyligence的李扬,是上海Kyligence的联合创始人兼CTO.今天我主要来和大家分享一下 ... 
- 解决 mininet gave up after 3 retries 问题
			解决 mininet gave up after 3 retries 问题 在通过mn启动mininet的时候遇到了如下问题: *** Creating network *** Adding cont ... 
- CSU 1808 地铁(最短路变形)
			http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1808 题意: Bobo 居住在大城市 ICPCCamp. ICPCCamp 有 n 个地铁站, ... 
- POJ 3295 Tautology(构造法)
			http://poj.org/problem?id=3295 题意: 判断表达式是否为永真式. 思路: 把每种情况都枚举一下. #include<iostream> #include< ... 
- JS进阶系列之内存空间
			也许很多人像我一样,觉得JS有垃圾回收机制,内存就可以不管了,以至于在全局作用域下定义了很多变量,自以为JS会自动回收,直到最近,看了阮一峰老师,关于javascript内存泄漏的文章时,才发现自己写 ... 
- 安装labelImage的问题qt
			不知为何需要些source ~/.bash_profile才 自己在 ~/.bash_profile 中配置环境变量, 可是每次重启终端后配置的不生效.需要重新执行 : $source ~/.bash ... 
- 用caffe进行图片检索
			1.图片的处理 输入:将自己的图像转换成caffe需要的格式要求:lmdb 或者 leveldb 格式 这里caffe有自己提供的脚本:create_minst.sh 转换训练图片和验证图片的格式,运 ... 
- html 表格中添加圆
			效果: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ... 
