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的更多相关文章
随机推荐
- HDU 2204 Eddy's爱好(容斥原理dfs写法)题解
题意:定义如果一个数能表示为M^k,那么这个数是好数,问你1~n有几个好数. 思路:如果k是合数,显然会有重复,比如a^(b*c) == (a^b)^c,那么我们打个素数表,指数只枚举素数,2^60 ...
- IDEA,RubyMine等JetBrains系列软件通用破解教程
此教程不光适用于IDEA,还可以在RubyMine等JetBrains系列软件使用,亲测可用. (1)下载安装你需要的JetBrains系列软件,安装完最好不要打开,直接finish,断开网络. (2 ...
- 【第二十三章】 springboot + 全局异常处理
一.单个controller范围的异常处理 package com.xxx.secondboot.web; import org.springframework.web.bind.annotation ...
- ajax实现highchart与数据库数据结合完整案例分析(三)---柱状折线图
作者原创,未经博主允许,不可转载 在前面分析和讲解了用java代码分别实现饼状图和折线图,在工作当中,也会遇到很多用ajax进行异步请求 实现highchart. 先展示一下实现的效果图: 用ajax ...
- NOI 4977 怪盗基德的滑翔翼(LIS)
http://noi.openjudge.cn/ch0206/4977/ 描述: 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯.而他最为突出的地方,就是他每次都能逃脱中村警部的重重围 ...
- Linux下通过命令行mail发送e-mail
找到配置文件/etc/mail.rc添加如下行 # vi /etc/mail.rc set from=@qq.com set smtp=smtp.qq.com set smtp-auth-user= ...
- 【Python】【环境搭建】
[环境配置] Windows : http://blog.csdn.net/zhunianguo/article/details/53524792 [Pycharm] pyCharm最新2018激活码 ...
- python 进程锁
1. #_*_coding:utf-8_*_ from multiprocessing import Process,Lock import os,time def f(l,i): #加锁 l.acq ...
- shell 特殊变量详解
$0 获取当前执行脚本的名称,包括路径 [root@centos test]# cat test.sh echo $0 [root@VM_102_244_centos test]# bash test ...
- Android仿QQ微信开场导航以及登陆界面
相信大家对于微信等社交应用的UI界面已经都很熟悉了,该UI最值得借鉴的莫过于第一次使用的时候一些列产品介绍的图片,可以左右滑动浏览,最后 进入应用,这一效果适用于多种项目中,相信今后开发应用一定会用得 ...