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

自己搞网站做外贸仿58同城分类信息网站源码

自己搞网站做外贸,仿58同城分类信息网站源码,wordpress首页标题分隔符修改,网站文章发布前言 真心希望各位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/586605.html

相关文章:

  • 盗版视频网站怎么做的网站制作价格情况
  • 怎样申请免费网站域名网络优化的内容有哪些
  • 做水果网站平台他达那非片能延时多久
  • dede手机网站教程百度大数据分析工具
  • 云主机安装网站2345网址导航用户中心
  • 常州微信网站建设长沙网页设计哪个公司好
  • 做自媒体都有什么网站专业网站建设哪里好
  • 青州网站制作哪家好如何使用好wordpress
  • 做一下网站网站wordpress 上注册用户
  • seo 网站制作模版网站做支付功能
  • 网站大图片优化汽车门户网站有哪些
  • 江苏启安建设集团有限公司网站罗湖网站(建设深圳信科)
  • 漯河网络推广哪家好温州seo博客
  • 网站下载软件aspx怎么做网站
  • 专业做网站的公司邢台专业做网站单项否决 网站建设
  • 关于重新建设网站的申请天台高端网站建设公司
  • 重庆专门做网站的公司义乌免费做网站
  • 免费创建个人商城网站吗网站建设先学什么
  • 网站死链接是什么阜新市建设小学网站
  • 律师网站建设单一本地门户网站源码
  • 烟台网站制作方案定制建网站业务如何开展
  • 生成html网站地图常州建设企业网站
  • 哪个网站可以帮忙做简历网站的根目录的路径
  • wap 手机网站建设网页游戏排行榜人气
  • 网站代码优化方案做社交网站怎么赚钱
  • 百度网站优化 件虚拟机中做网站
  • 网站推广的方法和手段wordpress cx-udy
  • 响应式网站公司邢台建设局网站上中标公示查询
  • 企业网站类型有哪些西安网站建设iseeyu
  • 网站用花生壳nas做存储做网站按什么收费多少钱