
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
动态规划把大问题拆成小问题,把小问题算出来用dp数组存起来,大问题用小问题解决,递推,不用重复算。
输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1 , y1 , x2 , y2 ,表示一个子矩阵,(x1,y1)为左上角坐标,(x2,y2)为右下角坐标。对于每个询问输出子矩阵中所有数的和。定义两个二维数组,一个存矩阵的数字a[][][][],一个存和s[][]s[i][j]表示在二维数组中,左上角(1,1)到右下角(i,j)所包围的矩阵元素的和。
在二维数组的矩阵中,选中其中以(x1,y1)为左上角,(x2,y2)为右下角的子矩阵,让其中的每个元素都加上c。表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上。中不在子矩阵的那一部分的c,以确保只有在选中的子矩阵的元素加上c。初始全部为零,调用上方函数可构建出初始不加c的数组。然后再调用上方函数,可以构建出在要求的数组。个整数,表示所有操作进行完毕后的最终矩
位运算是直接操作二进制的运算,是C++中速度最快的运算之一。
位移<< 与 >>不改变原变量本身。<<=和>>=修改变量本身。int a=4;//二进制为100a<<1;//二进制为1000,转成十进制为8//输出4a<<=1;//二进制为1000,转成十进制为8//输出81<<k快速得到2的k次方n>>k正数快速得到n除以2的k次方。
map是关联容器,map(key,value),以键值对的形式存储数据,其中每个键都是唯一的,表示不能有重复的键,如果想要插入一个已经存在的键,那么将会覆盖该键所对应的值。要输出元素,查找元素时用find方法,不要直接用下标。map的数据是有序的,能高效进行查找、插入与删除。map的键和值可以是任意类型。







