给定一个数组,数组元素分别为 0 0 0 0 0 0,假设现在要给区间2-5的每个数加上1,我们可以将序列标记变为0 1 0 0 0 -1,然后从前往后扫一遍维护前缀和,就可以得到 0 1 1 1 1 0,神奇。假设每个数开始都是0,我们给区间2-5的每个数加上1,相当于从第二个元素比前面大1,第六个元素比前面小1,因为我们只给区间2-5的每个数加1。同理可以扩展到二维。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 7;
int a[maxn][maxn];
int n, m;
int main()
{while(scanf("%d %d", &n, &m) == 2) {memset(a, 0, sizeof(a));int x1, y1, x2, y2;while(m--) {scanf("%d %d %d %d", &x1, &y1, &x2, &y2);for(int i = x1; i <= x2; i++) {a[i][y1] += 1;if(y2 + 1 <= n) a[i][y2+1] -=1;}}for(int i = 1; i <= n; i++) {for(int j = 2; j <= n; j++) {a[i][j] = a[i][j-1] + a[i][j];}}for(int i = 1; i <= n; i++) {for(int j = 1; j <= n; j++) {printf("%d ", a[i][j]);}printf("\n");}}return 0;
}

【luogu 3397】地毯 差分相关推荐

  1. 【差分】Tallest Cow(poj 3263/luogu 2879)

    Tallest Cow poj 3263 luogu 2879 题目大意: 现在有n头牛,两头牛如果要相互看到,那他们之间的牛必须比他们两低,现在给出n,最高牛的位置和高度,和m对关系,要你求每头牛最 ...

  2. 【线段树合并】解题报告:luogu P4556雨天的尾巴 (树上对点差分 + 动态开点 + 线段树合并)线段树合并模板离线/在线详解

    题目链接:雨天的尾巴 本题本身是一个非常简单的一道树上差分的模板题,但是由于变态的数据范围,我们直接用数组是存不下的(本来使用一颗普通的线段树直接维护最大值即可.但是本题的空间只有128MB,直接按照 ...

  3. [2021-09-09 T3] 序列/luogu P3943 星空(异或差分+bfs最短路+状压dp)

    序列 description solution code description 题目描述 长度为nnn的序列,初始全为000,每次可以选择⼀个数ai(1≤i≤l)a_i(1\le i\le l)ai ...

  4. [luogu P3128][USACO15DEC]Max Flow [LCA][树上差分]

    题目描述 Farmer John has installed a new system of  pipes to transport milk between the  stalls in his b ...

  5. luogu P2680 运输计划 (二分答案+树上差分)

    题目背景 公元 20442044 年,人类进入了宇宙纪元. 题目描述 公元20442044 年,人类进入了宇宙纪元. L 国有 nn 个星球,还有 n-1n−1 条双向航道,每条航道建立在两个星球之间 ...

  6. Luogu P4231 三步必杀 (差分)

    目录 题目 题解 题目 题目链接 题目背景 (三)旧都 离开狭窄的洞穴,眼前豁然开朗. 天空飘着不寻常的雪花. 一反之前的幽闭,现在面对的,是繁华的街市,可以听见酒碗碰撞的声音. 这是由被人们厌恶的鬼 ...

  7. 专题记录1-前缀和差分

    C - 前缀极差 2023HUEL寒假集训: 1.10 前缀和 - Virtual Judge (vjudge.net) #include <cstdio> #include <io ...

  8. P3168 [CQOI2015]任务查询系统 差分+主席树

    链接在这~:https://www.luogu.org/problem/P3168 主席静态区间修改,单点查询 区间(L,R)加1可以通过差分以后转换为L位置加1,R+1位置减1 我们只需要记录一下, ...

  9. 洛谷 P5019 铺设道路(差分)

    嗯... 题目链接:https://www.luogu.org/problem/P5019 首先简化一下题意: 给定一个长为N的数组,每次操作可以选择一个区间减去1,问最少多少次操作可以将数组中的数全 ...

最新文章

  1. 看一遍就理解:MVCC原理详解
  2. 卢宇:改善在线教育,人工智能大有可为
  3. C#快速整理代码格式
  4. 【操作系统】哲学家就餐问题
  5. Could not load driverClass “com.mysql.jdbc.Driver“
  6. PHP Everywhere 插件中存在严重RCE,影响数千个 WordPress 站点
  7. No architectures to compile for VALID_错误解决法案
  8. 删除数组中指定元素_删除js数组中的指定元素,有这两步就够了
  9. 不知名程序员金山云大米云主机体验日志
  10. PCB叠层排布原则以及AD中如何设计叠层
  11. 游戏开发之NGUI字体集制作
  12. java内存模型JMM理解整理
  13. Metro风格用户界面设计原则
  14. 订单管理_03查询订单信息流程
  15. mac 命令行 解压7z文件_命令行压缩解压7z
  16. OpenCV各种版本官方下载
  17. 常见室内观赏植物的管理技术大全
  18. 运放OPA的关键参数,输入偏置电流,输入失调电流,增益带宽积,共模抑制比,是否轨到轨,运放如何选型?
  19. 国际话题:我们已经知道了区块链杀手级应用(下)
  20. Cocos2d游戏开发学习记录——4.开发《植物大战僵尸》

热门文章

  1. java企业开发四:ssh+JPA(hibernate实现)
  2. JBOSS EAP 6 系列七 JPA/hibernate
  3. 罗切斯特计算机官网,罗切斯特
  4. python 生成英文字母对应顺序字典
  5. Python之logic
  6. SVN:无校验和记录解决办法
  7. 内存对齐规则及为什么内存对齐
  8. 重定位——重定位的简介与操作(涉及位置无关码)
  9. 大数据第一章(Linux环境部署JDKMysql)
  10. pyside6 - 简单了解