12月13日学习总结

项目:

      模板题目二维前缀和

     高数学习

     图形化界面的学习与使用(未完成)

   c++一些语法

     

学习成果展示

活动 - AcWing题目链接

输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2

,表示一个子矩阵的左上角坐标和右下角坐标。

对于每个询问输出子矩阵中所有数的和。

输入样例:

3 4 3
1 7 2 4
3 6 2 8
2 1 2 3
1 1 2 2
2 1 3 4
1 3 3 4

输出样例:

17
27
21

 解析

#include<stdio.h>
 int a[1010][1010],s[1010][1010];//第i行j列格子左上部分所有元素之和
main()
{
   int n,m,q;
   scanf("%d%d%d",&n,&m,&q);
   for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)
      {
          scanf("%d",&a[i][j]);
          s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];//这里是重点,进行新的转移
      }
      for(int i=1;i<=q;i++)
      {
          int x1,x2,y1,y2;
          scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
             printf("%d\n",s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]);
//这个也是重点
      }
      return 0;

}

参考资料

二维前缀和详解_八月炊火的博客-CSDN博客_二维前缀和

他这里是利用图形解释的。如果可以记得图形理解,可能更方便理解二维前缀和的思路

首先解释下题目的意思:我输入n行,m列(1<=n,m<=1000)

然后q是你要输出的多少个数,就是访问的问题。 b

输入完之后,就会输入q组有4个数字的数据。分别代表着x1,y1,x2,y2;

语法学习篇————c++

后缀名

.cpp

头文件

#include<iostream>(大概和C语言#include<stdio.h>一样)

using namespace std;这个就是输出这里可以少打点

如果我想在c++里面使用printf();

我就有俩种方式

1、#include<stdio.h>//常规操作

2、#include<cstdio>

他也是main()开始

输出

cout<<"hello word!"

count<<"var"<<" "<<endl

(解释<<endl是输出回车,相当于\n;

输入

cin>>n>>m;

(这个就相当于c语言的scanf(),但是他比c语言聪明,因为它可以自动识别数据的符号

能用cin语句把空格字符和回车换行符作为字符输入给字符变量,他们将被跳过。

综合知识展示

#include<iostream>
#include<cstdio>//#include<stdio.H>
using namespace std;
int main()
{
   int n;
cin>>n;
cout<<n<<" "<<"1"<<endl;
cout<<"2";
return 0;
}

12月13日学习总结

 

函数说明

class student
{
  声明成员变量
};

创建了一个 student 类,可以在该类中声明 student 类的成员变量和成员函数,用于描述 student 的各方面特性,例如姓名、学号、年龄等信息。

上一篇:linux安装postgre9.6.20


下一篇:Linux 安装postgresql - 13