当前位置: 首页 > news >正文

P4514 学习笔记

省流:二维树状数组

题目传送门

对于一个二维前缀和:

\[\sum_{i=1}^{x} \sum_{j=1}^{y} \sum_{u=1}^{i} \sum_{v=1}^{j} c[u][v] \]

但是后面两个 \(\sum\) 其实可以变成

\[\sum_{i=1}^{x} \sum_{j=1}^{y} (x-i+1)(y-j+1)c[i][j] \]

展开

\[\sum_{i=1}^{x} \sum_{j=1}^{y} c[i][j] \cdot (xy-xj+x-iy+ij-i+y-j+1) \]

小小分解:

\[\sum_{i=1}^{x} \sum_{j=1}^{y} c[i][j] \cdot [(x+1)(y+1)-i(y+1)-j(x+1)+ij] \]

维护 \(c[i][j],c[i][j] \cdot i,c[i][j] \cdot j,c[i][j] \cdot i \cdot j\) 即可。

code
#include <bits/stdc++.h>
#define Ofile(s) freopen(s".in", "r", stdin), freopen (s".out", "w", stdout)
#define Cfile(s) fclose(stdin), fclose(stdout)
#define fast ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;using ll = long long;
using ull = unsigned long long;
using lb = long double;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;constexpr int mod = 998244353;
constexpr int maxk = 2050;int n, m, a, b, c, d, delta;char ch;int t1[maxk][maxk], t2[maxk][maxk], t3[maxk][maxk], t4[maxk][maxk];char cc[2];int lowbit(int x){return x & (-x);
}void update(int x, int y, int d){for (int i = x; i <= n; i += lowbit(i))for (int j = y; j <= m; j += lowbit(j))t1[i][j] += d, t2[i][j] += x * d, t3[i][j] += y * d, t4[i][j] += x * y * d;
}int query(int x, int y){int ans = 0;for (int i = x; i > 0; i -= lowbit(i))for (int j = y; j > 0; j -= lowbit(j))ans += (x + 1) * (y + 1) * t1[i][j] - (y + 1) * t2[i][j] - (x + 1) * t3[i][j] + t4[i][j];return ans;
}int main() {fast;scanf("%s", cc);scanf("%d%d", &n, &m);while (scanf("%s", cc) != EOF){scanf("%d%d%d%d", &a, &b, &c, &d);if (cc[0] == 'L'){scanf("%d", &delta);update(a, b, delta);update(c + 1, d + 1, delta);update(a, d + 1, -delta);update(c + 1, b, -delta);}else printf("%d\n", query(c, d) + query(a - 1, b - 1) - query(a - 1, d) - query(c, b - 1));}return 0;
}
http://www.jsqmd.com/news/392079/

相关文章:

  • Web3学习笔记:Day2-Solidity基础语法
  • 别再瞎找了!千笔,行业天花板级的降AI率网站
  • 亲测好用! AI论文平台 千笔ai写作 VS 锐智 AI 本科生专属
  • 少走弯路:AI论文软件,专科生首选!千笔AI VS 万方智搜AI
  • 如何使用 Sugar Calendar 插件打造一个可销售活动门票的 WordPress 网站
  • 放弃QQ截图后,我被这款免费神器拿捏了,F1截图+F3贴图太香了
  • 用基因组语言模型探索微生物暗物质
  • Cisco ISE 权限提升漏洞利用工具 (CVE-2025-20282)
  • 降重省心了!研究生必备的降AI率平台 —— 千笔·专业降AI率智能体
  • 用数据说话:一键生成论文工具 千笔 VS WPS AI,专为本科生打造!
  • 哪些细分场景的家用机器人会率先落地?
  • 微信小程序学习实录15:微信小程序基于百度云人脸识别的刷脸打卡开发方案 - 实践
  • 2026智能仓储服务新排行,发现宝藏企业,全自动仓库/智能仓储/立体仓储/智能仓库/立体仓库,智能仓储供应厂家哪家好 - 品牌推荐师
  • 2026年2月苏州松鼠桂鱼美食餐厅最新推荐,招牌硬菜与正宗技艺解析 - 品牌鉴赏师
  • 导师要求AI率低于10%?这两款工具帮你搞定
  • 不踩雷! 更贴合专科生的降AI率网站 千笔·降AI率助手 VS 灵感ai
  • 深度测评 9个AI论文平台:本科生毕业论文写作全攻略
  • 万方AIGC检测突然变严?2026最新应对策略汇总
  • 效率直接起飞! 降AI率网站 千笔 VS 笔捷Ai,专科生专属神器!
  • 电流三段式保护matlab simulink仿真模型 模拟线路50%处、90%处,下级线路开关...
  • AI写论文后如何避免被查出?降AI全流程详解
  • 用过才敢说 10个AI论文工具测评:专科生毕业论文+开题报告全攻略
  • 嘉立创EDA:批量给多个元件修改、分配位号
  • 2026年最值得推荐的5款降AI率工具(含价格对比)
  • 赶deadline必备! 10个一键生成论文工具测评:继续教育毕业论文写作全攻略
  • 2026年2月异型铝单板厂家最新推荐,定制能力与工艺水平解析 - 品牌鉴赏师
  • 生产环境Prompt Injection 怎么防:攻击面与工程防线(含安全 Checklist)最佳实践与性能优化
  • 知网AIGC检测太严了?这3个工具帮你轻松过关
  • 2026年2月水培种植微纳米气泡发生器厂家推荐,根系增氧助力高产 - 品牌鉴赏师
  • 2026连锁门店系统测评:主流方案一体化能力对比