【模板】二维差分

简介: 【模板】二维差分

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N= 1e3+3;
int n, m, q;
long long a[N][N], b[N][N];
void insert(int x1,int y1,int x2,int y2,int c){
  b[x1][y1]+= c;
  b[x2+1][y1]-= c;
  b[x1][y2+1]-= c;
  b[x2+1][y2+1]+= c;
}
int main(){
  cin>>n>>m>>q;
  for(int i= 1; i<= n; i++)
    for(int j= 1; j<= m; j++){
      cin>>a[i][j];
      insert(i, j, i, j , a[i][j]);
    }
  while(q--){
    int x1, y1, x2, y2, c;
    cin>>x1>>y1>>x2>>y2>>c;
    insert(x1, y1, x2, y2, c);
  } 
  for(int i=1;i<=n;i++){
    for(int j= 1;j<= m; j++){
      b[i][j]+=b[i-1][j]+b[i][j-1]-b[i-1][j-1];
      cout<<b[i][j]<<" ";
    }
    puts("");
  }
  return 0;
}

insert 函数:

puts(""); 是一条用于输出空字符串的语句

puts 函数puts 是 C 标准库中的一个函数,用于向标准输出设备(通常是终端屏幕)输出一个字符串,并在字符串末尾自动添加换行符(\n)。

空字符串:双引号 "" 包围的部分即为空字符串。空字符串没有可见字符,只包含一个空字符(\0)作为终止符。尽管它看起来似乎没有任何作用,但在某些场景下仍然有意义,如占位、满足语法要求或与外部接口对接时保持一致等。

puts(""); 这一行代码的作用就是向标准输出设备输出一个空字符串,并在其后添加一个换行符。实际效果就是在屏幕上显示一个空行。

虽然从表面上看,输出一个空字符串似乎没有实际意义,但在某些特定情况下可能有用,例如:

  • 为了保持代码结构的一致性,或者在调试时方便注释和取消注释某段代码,可能会保留一个空的 puts 调用。
  • 在某些循环或条件结构中,根据特定条件决定是否输出内容时,可能会先写出一个空的 puts,然后在合适的地方替换为实际的字符串。
  • 当需要频繁与某个期望接收空字符串作为输入的外部接口交互时,使用 puts("") 可能更为直观和便捷。

然而,在大多数实际编程场景中,如果单纯是为了输出一个空行,通常会选择使用更直接的 std::endl(在 C++ 中)或 \n(在 C 或 C++ 中)与输出流操作符结合,

std::cout << std::endl; // C++

std::cout << '\n'; // C 或 C++

printf("\n"); // C

这些写法更为简洁,且不会引入不必要的函数调用开销。


目录
相关文章
|
5月前
第4章-变换-4.1-基础变换
第4章-变换-4.1-基础变换
32 0
|
8月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
|
8月前
|
存储 人工智能 算法
二维差分与二维前缀和
二维差分与二维前缀和
84 3
|
7月前
|
计算机视觉
图像处理之图像内插值与外插值
图像处理之图像内插值与外插值
46 0
|
8月前
|
存储 Serverless 定位技术
基于MATLAB的全局多项式插值法(趋势面法)与逆距离加权(IDW)法插值与结果分析
基于MATLAB的全局多项式插值法(趋势面法)与逆距离加权(IDW)法插值与结果分析
|
Python
点云在任意平面上获取二维投影
点云在任意平面上获取二维投影
1194 0
点云在任意平面上获取二维投影
|
存储 人工智能 算法
【高精度加减乘除法、一维二维前缀和&&差分】思路讲解及代码实现
用一篇Blog来讲解下最近学到的高精度加减乘除法、一维二维前缀和&&差分等算法,为日后的刷题打下坚实的基础。
109 0
|
人工智能 vr&ar
一维 二维求前缀和、差分
一维 二维求前缀和、差分
63 0
|
机器学习/深度学习 移动开发
线性代数高级--二次型--特征值与特征向量--特征值分解--多元函数的泰勒展开
线性代数高级--二次型--特征值与特征向量--特征值分解--多元函数的泰勒展开