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

网站首页怎样排版施工企业iso认证

网站首页怎样排版,施工企业iso认证,宁波高端网站开发,网页设计网络培训文章目录 一维前缀和二维前缀和:一维差分二维差分: 前缀和与差分,互为逆运算,前缀和是构造一个新数组,新数组是旧数组的前缀和,而差分是构造一个新数组,新数组的前缀和是旧数组,这是他们之间的关…

文章目录

  • 一维前缀和
  • 二维前缀和:
  • 一维差分
  • 二维差分:

前缀和与差分,互为逆运算,前缀和是构造一个新数组,新数组是旧数组的前缀和,而差分是构造一个新数组,新数组的前缀和是旧数组,这是他们之间的关系。

一维前缀和

#include<iostream>
using namespace std;
const int N=100010;int a[N];
long long sum[N];//这里的long long不要丢,前缀和可能很大int main()
{int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=1;i<=n;i++)sum[i]=sum[i-1]+a[i];while(m--){int l,r;scanf("%d%d",&l,&r);printf("%d\n",sum[r]-sum[l-1]);}return 0;
}

记住核心的一句:
sum[r]-sum[l-1]

二维前缀和:

//子矩阵的和
#include<iostream>
using namespace std;
const int N=1010;
int n;//行数
int m;//列数
int q;//q个询问
int a[N][N];
long long sum[N][N];int main()
{cin>>n>>m>>q;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)//关键1:sum[i][j]=sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1]+a[i][j];for(int i=1;i<=q;i++){int x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;//关键2:cout<<sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][y1-1]<<endl;}return 0;
}

一维差分

#include<iostream>
using namespace std;
const int N=100010;int n;//n是长度
int m;//m个操作
int a[N];//整数序列
int b[N];//差分序列,保存的是序列每一项与前一项的差值void insert(int l,int r,int c)
{b[l]+=c;b[r+1]-=c;
}int main()
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++)b[i]=a[i]-a[i-1];while(m--){int l,r,c;cin>>l>>r>>c;insert(l,r,c);}for(int i=1;i<=n;i++)a[i]=b[i]+a[i-1];for(int i=1;i<=n;i++)cout<<a[i]<<" ";return 0;
}

二维差分:

//二维差分
#include<iostream>
using namespace std;const int  N=1010;int a[N][N],b[N][N],n,m,q;void insert(int x1,int y1,int x2,int y2,int c)
{b[x1][y1]+=c;b[x1][y2+1]-=c;b[x2+1][y1]-=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];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)b[i][j]=a[i][j]-a[i-1][j]-a[i][j-1]+a[i-1][j-1];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++)a[i][j]=a[i][j-1]+a[i-1][j]-a[i-1][j-1]+b[i][j];for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)cout<<a[i][j]<<" ";puts("");}return 0;
}

前缀和比较好想,差分不太好想。想不起来的时候可以看看这个图解:
在这里插入图片描述

http://www.dtcms.com/wzjs/797560.html

相关文章:

  • 中国最有名的建设网站网站后台设计教程
  • 网站设计的任务八大电商平台是哪几家
  • 网上做网站网站网络广告怎么做
  • 做淘宝的网站深圳最简单的网站建设
  • 莱西网站建设哪家好短视频营销的正确步骤
  • html建站西双版纳北京网站建设
  • 建设网站安全措施广东省54个市
  • 做汽车拆解视频网站国外推广都是怎么推广
  • 杭州电商网站策划设计上海每44秒就有一人死于新冠
  • 网站建设先买主机还是门户网站定制
  • 网站配色风格有哪些网络平台制作方法
  • 做电商网站搭建晋升网页设计作业电影介绍网站
  • python网站开发的优势从做系统找不到以前的网站
  • 做网站之前需要准备什么郑州做网站九零后网络
  • 自考都到哪个网站找题做学校网站建设目的是什么意思
  • 鲜花培训网站建设海外社交网站开发
  • 东城网站建设辽宁省和城乡建设厅网站
  • 上海html5网站建设重庆企业网站建设公司
  • 做五金的外贸网站有哪些wordpress最近访客
  • 构建企业网站网站需要多少钱
  • 苏州网站关键词优化湄洲岛网站建设
  • 郴州文明网网站前端开发35岁以后干什么
  • 网站建设电话销售模版工业产品设计图
  • 有经验的手机网站建设互联科技行业网站
  • 2015做哪些网站致富电子商务营销案例分析
  • 网站建设具体需求怎么导入模板到wordpress
  • 电子商务网站开发基本流程wordpress设置静态页面
  • 中国建设人才服务信息网是什么网站长沙建网站的公司多少钱
  • 宿州网站建设工作室东莞英文网站制作
  • 做网站用什么ps软件网站百度收录秒收方法