当前位置: 首页 > wzjs >正文

温州小程序开发哪家好优化外贸网站

温州小程序开发哪家好,优化外贸网站,快站优惠券,seo与sem的区别和联系差分 记录累计差值,相当于输入前缀和数组,计算保留”原数组“,差分和前缀和是互逆操作; 思想 给定我们一个数组a[0],a[1],a[2]....a[n] 我们做一个数组b[0],b[1],b[2]...b[n] b[i]符合b[i]a[i]-a[i-1] 此时b是a的…

差分

记录累计差值,相当于输入前缀和数组,计算保留”原数组“,差分和前缀和是互逆操作;

思想

给定我们一个数组a[0],a[1],a[2]....a[n]

我们做一个数组b[0],b[1],b[2]...b[n]

b[i]符合b[i]=a[i]-a[i-1]

此时b是a的差分,a是b的前缀和

要求在a[l]到a[r]中的所有数都加上c

因为a是b的前缀和,只需要在b[l]+c

a[l]以及a[l]到a[n]所有数,都会+c

只需要在b[r+1]-c,b[r+1]以及b[r+1]到b[n]所有数都会减c

这里的n指的是数组末尾

一维差分经典题目

活动 - AcWing

代码

#include<iostream>
using namespace std;
int sun[100010],arr[100010],xsun[100010];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>sun[i];//求差分,输入的数组是前缀和数组arr[i]=sun[i]-sun[i-1];//求差分数组}while(m--){int l,r,c;cin>>l>>r>>c;//因为sum是arr的前缀和,只需要在arr[l]+c//sun[l]以及sun[l]到sun[n]所有数,都会+c//n是数组最后一个下标arr[l]+=c;//同样,因为因为sum是arr的前缀和,a[r+1]-c//sun[r+1]以及sun[r+1]到sun[n]所有数,都会-carr[r+1]-=c;}for(int i=1;i<=n;i++){xsun[i]=arr[i]+xsun[i-1];//输出改变完值的arr的前缀和数组cout<<xsun[i]<<' ';}return 0;
}

二维差分

题目

活动 - AcWing

思路

把给定的数组当做前缀和数组sun读入,读入的同时求sun的差分,或者说原数组

利用求出的差分数组arr,如果要对一个子矩阵添加删除

只需要对arr数组进行操作,就可以在O(1)的复杂度下批量增删sun数组

假设题目要求对x1,y1,x2,y2子矩阵+c

第一步

假设第二步

实际第二步

上图转换成代码

    	//arr[x1][y1]+c//则其前缀和数组从[x1][y1]开始每个都+carr[x1][y1]+=c;//arr[x2+1][y1]-c,因为只加子矩阵x1,y1,x2,y2//所以去掉多加的部分arr[x2+1][y1]-=c;//这里也是去掉多+的部分arr[x1][y2+1]-=c;//两次去掉多+的部分过程中//有重复删除的部分,把重复删除的部分,添加上一次arr[x2+1][y2+1]+=c;

减完之后,我们就可以求arr的二维前缀和xsun

前缀和

然后输出xsun即可

代码

#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int sun[1010][1010],arr[1010][1010],xsun[1010][1010];
int main(){int n,m,q;cin>>n>>m>>q;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){scanf("%d",&sun[i][j]);//把初始数组当成前缀和数组输入//利用前缀和数组计算原数组//或者说计算差分数组//差分数组通过sun[i][j]减去arr[i][j]+arr[i][j-1]获取//arr[i][j]+arr[i][j-1]的值通过sun不断减去获得//具体过程和求前缀和加法逻辑一样arr[i][j]=sun[i][j]-sun[i-1][j]-sun[i][j-1]+sun[i-1][j-1];}}//q次询问while(q--){int x1,y1,x2,y2,c;cin>>x1>>y1>>x2>>y2>>c;//arr[x1][y1]+c//则其前缀和数组从[x1][y1]开始每个都+carr[x1][y1]+=c;//arr[x2+1][y1]-c,因为只加子矩阵x1,y1,x2,y2//所以去掉多加的部分arr[x2+1][y1]-=c;//这里也是去掉多+的部分arr[x1][y2+1]-=c;//两次去掉多+的部分过程中//有重复删除的部分,把重复删除的部分,添加上一次arr[x2+1][y2+1]+=c;}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){//求arr的二维前缀和xsun[i][j]=arr[i][j]+xsun[i-1][j]+xsun[i][j-1]-xsun[i-1][j-1];cout<<xsun[i][j]<<" ";}cout<<endl;}return 0;
}

文章转载自:

http://6uNTiP3n.frqtc.cn
http://5cu6UO75.frqtc.cn
http://IRlQZYfn.frqtc.cn
http://zldMJcjM.frqtc.cn
http://bbknJ7SN.frqtc.cn
http://AkNTkbC6.frqtc.cn
http://hF5SnDMO.frqtc.cn
http://fQsJooWu.frqtc.cn
http://dBBYBlSj.frqtc.cn
http://wdoGp0qW.frqtc.cn
http://y1YnwppE.frqtc.cn
http://rckiXeuv.frqtc.cn
http://JYh6OIUC.frqtc.cn
http://bGhGj7dw.frqtc.cn
http://zhxIlv29.frqtc.cn
http://LBthhTGT.frqtc.cn
http://zazRFIG5.frqtc.cn
http://9GADX6zt.frqtc.cn
http://YUCWdbZd.frqtc.cn
http://lY2li5Mv.frqtc.cn
http://R8ZHJDJq.frqtc.cn
http://pC0VoZlp.frqtc.cn
http://izOzf2Nm.frqtc.cn
http://4oaR1TW2.frqtc.cn
http://X2k5TLdx.frqtc.cn
http://afsmrJEO.frqtc.cn
http://n4pOXb7s.frqtc.cn
http://Lg7vxwAN.frqtc.cn
http://3f712T69.frqtc.cn
http://Qojf2j01.frqtc.cn
http://www.dtcms.com/wzjs/765539.html

相关文章:

  • 网站免费申请注册jsp怎么做购物网站
  • dw网站开发环境建设网页制作
  • 长沙网站外包深圳高端电商网站建设者
  • 西宁网站建设王道下拉惠自己做网站投放有流量么
  • 中国建设银行网站会员用户名长春火车站停运了吗
  • 网站设计模板代码哈尔滨网站设计哪家好
  • 新乡网站建设公司西安网站建设品牌公司推荐
  • 做a 免费网站有哪些滴滴优惠券网站怎么做
  • 建设部资质查询网站精品建站公司
  • 玉泉路做网站阜南县城乡建设局官方网站
  • 关于机场建设的网站网站开发不懂英语
  • 山西网站建设服务同样是div 怎么有些网站收录少 有些多
  • 网站建设培训费用多少车辆年检查询系统官方网站
  • 个人网站赚广告费快速网站建设公司哪家好
  • 服装店网站建设规划书海南企业网站建设
  • wordpress随机文章列表长春seo建站
  • 手机网站怎么在电脑上打开wordpress配置教程
  • 免费做金融网站有哪些工程项目管理软件有哪些
  • 个人怎么做旅游网站wordpress文章格式
  • 有什么网站可以发布个人信息织梦企业网站
  • 梁山手机网站建设江西省住房和城乡建设厅网站
  • 二手手机网站网页设计会展免费网站模板
  • 杭州旅游景区网站建设网页优化方法
  • 怎么维护网站wordpress 个人博客模板
  • 采集网站如何收录网站有什么类型
  • 免费做宣传的网站是网站建设中最重要的环节是
  • 建立自己的网站平台网站做的好不好数据
  • 2017还有人做网站吗优秀企业网站有哪些
  • 中国住房城乡和城乡建设部网站网站建设难做吗
  • 名师工作室网站建设建议天眼网查询个人信息