2025/12/30 12:54:33
网站建设
项目流程
什么是网站建设的三次点击原则,营销网站排行榜前十名,优化大师电脑版官方,怎么建设品牌网站前提提要#xff1a;这两种算法都不用背#xff0c;重点是理解#xff0c;等题目需要时#xff0c;自己画图解决#xff01;注意不管是前缀和还是差分 我们一定要数组下标从1开始#xff01;前缀和#xff08;分成一维和二维#xff09;作用#xff1a;求一段序列的和…前提提要这两种算法都不用背重点是理解等题目需要时自己画图解决注意不管是前缀和还是差分 我们一定要数组下标从1开始前缀和分成一维和二维作用求一段序列的和一维前缀和题目原先数组a[N];创建一个数组发前缀和数组f[N],利用for循环递归 f[i]f[i-1]a[i];假如题目要我们求[L,R]之间的和我们可以用 sumf[R]-f[L-1];二位前缀和题目原先数组a[N][N];第一步预处理f[i][j]f[i-1][j]f[i][j-1]-f[i-1][j-1]a[i-1][j-1];第二步求[x1,y1]到[x2,y2]之间的前缀和即sumf[x2][y2]-f[x2][y1-1]-f[x1-1][y2]f[x1-1][y1-1];差分分一维和二维作用对一段序列进行加x一维差分有两种常用表达形式第一种题目原先数组a[N],创建差分数组f[N],我们可以for循环 f[i]a[i]-a[i-1];对于题目要求改变的序列[L,R]我们f[L]x,f[R-1]-x;然后还原原先序列 for循环 a[i]a[i-1]f[i] 输出即可得到新序列第二种根据性质来创建差分序列for循环 我们直接输入一个t 再加上这两个表达式 f[i]tf[i1]-t;对于题目要求改变的序列[L,R]我们f[L]x,f[R-1]-x;然后还原原先序列 for循环前缀和还原 f[i]f[i-1];一边常用第二种 因为可以少创建一个数组二维差分我们对于[x1,y1]到[x2,y2]这个区间同时加x;说明insert函数f[x1][y1]x,f[x1][y21]-x,f[x21][y1]-x,f[x21][y21]x;第一步预处理 依次对二维数组cint 我们就可以两个for循环 insert(i,j,i,j,t)第二步改变 insert(x1,y1,x2,y2,x);第三步还原用前缀和 sumf[x2][y2]-f[x2][y1-1]-f[x1-1][y2]f[x1-1][y1-1]