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

自己搞网站做外贸十档行情免费网站

自己搞网站做外贸,十档行情免费网站,百度电话,腾讯企业邮箱好用吗前言 真心希望各位dalao点赞收藏~ 树状数组 作用:高效求出区间前缀和,允许进行修改操作。 举个栗子: 刚开始有8项,分别为1-8。 首先构建二叉树: 1-8/ |/ |/ |/ |/ |1-4 5-8/ | / |/ | / |1-…

前言

真心希望各位dalao点赞+收藏~

树状数组

作用:高效求出区间前缀和,允许进行修改操作。 举个栗子: 刚开始有8项,分别为1-8。 首先构建二叉树:

			   1-8/ |/  |/   |/    |/     |1-4     5-8/ |	    / |/  |    /  |1-2 3-4 5-6 7-8/ | / | / | / |1  2 3 4 5 6 7 8

设x为第i个数所在的层数,显然2,4,6,8,3-4,7-8没有任何用处,因为其他t[i](仅需<2^i个)表示树状数组去掉不需要的数组后第i项的值。

void add(int x,int p){while(x<=n){c[x]+=p;//x为下标,c[x]包含x[原来初始的下标x] x+=lowbit(x);//lowbit为转成二进制从后往前第一个为1的值(那一位的权值)}
}

(暴力求解,每次输入一个值都进行如上时间复杂度为O(log n)的操作(只加了当前这个值),时间复杂度O(n log n),空间复杂度O(n)) 

void build(){for(int i=1;i<=n;i++){t[i]+=a[i];//t[i]肯定包含a[i],而且以前一定没加上,所以要加上t[i+(i&-i)/*相当于lowbit(i)*/]+=t[i];//直接加到上级祖先}
}

(优化求解,直接一次性加给他的祖先,时间复杂度O(n),空间复杂度O(2n)) 

以上两种建树方法各有优劣,相当于一个时间空间互换的过程。 

拓展类型1: 1.求逆序数(对)问题 逆序数是指在第i个数前有多少个>第i个数的数。

树状数组的作用是求出前缀和, 所以我们可以使用类似于桶排序的原理,桶[i]表示i在此时出现的次数。

只需要求第i个数的时候就把桶[第i个数]++就可以了。

PS:一般用离散化使其空间复杂度变小且下标连续。

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

相关文章:

  • 漳州 网站设计发软文提高网站权重
  • 网站被iframe网站调整方案
  • mvc5网站开发实战详解网站增值服务
  • 系部网站建设研究方案网站301的作用
  • 网站的分类有哪些类型企业标准备案平台官网
  • 一站式企业服务某企业网站建设方案
  • 天津响应式网站设计网页编辑工具2022
  • 电子商务网站有哪些功能wordpress后台的使用技巧
  • 湖北省住房和城乡建设部网站wordpress 4.5多用户
  • 做网站的技术员深圳建设资格注册中心网站
  • wordpress 下拉列表seo优化关键词挖掘
  • 江西h5响应式网站建设设计产品如何做网站地图
  • 淘宝客怎么做自己网站推广公众号建网站
  • 美观网站建设价格企业网站一定要备案吗
  • .net网站开发 平台网站的ftp上传地址
  • 泰安市住房和城乡建设局网站做网站的流程知乎
  • 我想做个网站要多少钱玉溪哪有网站建设服务公司
  • 网站后台从哪里进去PHP手机网站开发工程师
  • 青岛做一个网站多少钱温州网站建设哪里好
  • 长春网站推广优化公司掘金网站建设
  • 025网站建设北京企业网站推广价格
  • 长沙网站建站推广行情网免费网站大全
  • 网站不做icp备案ph域名网站
  • 设计与绘制一个网站首页品牌网站设计联系
  • 做外贸收费的服装网站中国做网站的网站
  • 江都建设招标网站洛阳网站推广公司电话
  • 北京专业做网站公司工业设计创意产品
  • 邯郸成安建设局网站凡客官网登录
  • 建设网站的价格哈尔滨网络开发
  • 广州网站建设484186徐州免费网站建设