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

安徽网站建设信息网站页面如何架构

安徽网站建设信息,网站页面如何架构,长春招聘网官网,关键词优化怎么优化作者:指针不指南吗 专栏:算法篇 🐾合理规划时间与精力🐾 1.什么是差分? 与前缀和是反函数 原数组a a1 , a2 , a3 , a4 , a5 , a6 , a7 构造数组b a1b1; a2b1b2; a3b1b2b3; … aib1b2b3…bi; 构造一个b数组使得&#…

作者:指针不指南吗
专栏:算法篇

🐾合理规划时间与精力🐾

1.什么是差分?

与前缀和是反函数

原数组a

a1 , a2 , a3 , a4 , a5 , a6 , a7

构造数组b

a1=b1;

a2=b1+b2;

a3=b1+b2+b3;

ai=b1+b2+b3+…+bi;

构造一个b数组使得,他的前缀和是 a;

则b就是a的差分。


2.怎么求差分?

差分b , 前缀和 a;

  • 第一种
for(int i=1;i<=n;i++){cin>>a[i];b[i]=a[i]-a[i-1];
}
  • 第二种 利用函数,在问题具体操作时保持一致
void insert(int l,int r,int c)
{b[l]+=c;b[r+1]-=c;
}for(int i=1;i<=n;i++){cin>>a[i];insert(i,i,a[i]);  //原来 b中都是0,现在插上
}

3.差分有什么用

对一段区间 [ l , r ] 的每个数加上 c,每个数多少

差分 b[ l ] + = c ,则 a[ l ~ n ] 全部都加上 c ,因为a[l]=...+b[l] ,a[l+1]=...+b[l]+b[l+1]

但是注意 r 之后的元素也都加上 c 了,这个不是我们想要的,所以打个补丁 ,令 b[ r + 1 ] - = c ;

优点是:时间复杂度为线性的

#include<iostream>
using namespace std;const int N=100010;
int a[N],b[N];int n,m; //n 数组元素个数;m 表示操作次数void insert(int l,int r,int c){b[l]+=c;   //对差分+cb[r+1]-=c;  //补丁
}int main(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];insert(i,i,a[i]);  //差分b 数组}while(m--){int l,r,c;        //对差分 b 操作cin>>l>>r>>c;    insert(l,r,c);   //对区间进行元素进行操作}for(int i=1;i<=n;i++){    //求出原数组即前缀和aa[i]=a[i-1]+b[i];cout<<a[i]<<' ';}return 0;
} 

4.进阶: 二维差分

在这里插入图片描述

黄色部分(x1,y1),(x2,y2)内的每个数加上 c

黄色 + c = (红色顶点+c) - (绿色顶点 - c ) - ( 粉色顶点 - c ) + ( 混合 色顶点)

差分处理 :

b [ x1 ] [ y1 ] + = c ;

b [ x1 ] [ y2 - 1 ] - = c ;

b [ x2 ] [ y1 - 1 ] - = c ;

b [ x2 - 1 ] [ y2 - 1 ] + = c ;


  • 代码实现
#include <iostream>using namespace std;const int N = 1010;int n, m, q;
int a[N][N], b[N][N];void insert(int x1, int y1, int x2, int y2, int c)
{b[x1][y1] += c;b[x2 + 1][y1] -= c;b[x1][y2 + 1] -= c;b[x2 + 1][y2 + 1] += c;
}int main()
{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]);insert(i, j, i, j, a[i][j]);}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 ++ ){b[i][j] += b[i - 1][j] + b[i][j - 1] - b[i - 1][j - 1];printf("%d ", b[i][j]);}puts(" ");}return 0;
}

Alt

http://www.yayakq.cn/news/54679/

相关文章:

  • 建立网站的费用佛山做网络优化的公司
  • nas服务器可以做网站吗wordpress 相册 不显示图片
  • 上海品质网站建设海口市住房和城乡建设局 网站
  • 如何做网站卖衣服建立网站英文
  • 帮公司做网站的外包公司赤峰中国建设招标网站
  • 普同网站跟营销型网站的区别电子商务网站建设与维护总结
  • 网站定制开发是什么百度收录自适应网站
  • 网站建设:宏智网络科技杭州h5建站在线咨询
  • 中国建设银行杭州分行网站国外做的好的电商网站推荐
  • 网站做的比较好的柳州做网站制作的公司有哪些
  • 帝国cms登录网站中国纪检监察报社地址
  • 如何做网站页面赚钱wordpress主题去除授权
  • 登录深圳住房和建设局网站珠海品牌设计公司
  • 虞城县住房和城乡建设局网站利用表单大师做网站
  • 网站建设基础教程人教版企业邮箱注册申请163免费
  • 昆明网站建设优化wordpress 内容可以是表格吗
  • 网站建设价格济南wordpress顶部导航
  • 做网站怎么用国处服务器西安市建设工程交易中心
  • 标准化信息网站建设与应用端掉一个wordpress网站
  • 城乡建设部网站造价工程师查询wordpress 3.6下载
  • 大型商城网站建设网站制作常用代码
  • 怎样手机做网站教程南京建设网站
  • 上线了 网站培训平台
  • 怎么建设游网站主页企业网站源码 多语言
  • 阜阳中国建设银行官网站做网站的专业公司
  • 保定网站建设方案优化正规网站制作公司哪家好
  • 邯郸网站优化平台珠海网站建设排名
  • 营销型网站设计招聘北京比较好的网站建设公司
  • 网站怎么做gps定位餐饮营销策划方案范文
  • 国外做名片网站海口网上注册公司流程