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

网站开发 居易国际网站怎样优化seo

网站开发 居易国际,网站怎样优化seo,大石桥网站制作,如何做好一个营销方案文章目录1. 概念2. 建树3. 查询4. 修改5. 完整代码及测试上图 from 熊掌搜索 类似数据结构#xff1a;树状数组 1. 概念 线段树是一种二叉树#xff0c;是用来表示一个区间的树#xff1a; 常常用来查询区间的#xff1a;和、最小值、最大值树结点中存放不是普通二叉树的… 文章目录1. 概念2. 建树3. 查询4. 修改5. 完整代码及测试上图 from 熊掌搜索 类似数据结构树状数组 1. 概念 线段树是一种二叉树是用来表示一个区间的树 常常用来查询区间的和、最小值、最大值树结点中存放不是普通二叉树的值其结点结构如下 class TreeNode { public:int sum;//区间和int MAX;//区间最大的int MIN;//区间最小的int start, end;//区间左右端点TreeNode *left, *right;//左右节点TreeNode(int s, int e, int v):start(s),end(e),sum(v){left right NULL;MAX v;MIN v;} };2. 建树 传入数组及其左右极限端点自底向上建树 TreeNode* build(vectorint A, int L, int R){if(L R)return NULL;TreeNode* rt new TreeNode(L,R,A[L]);if(L R)return rt;int mid L((R-L)1);//对半分开rt-left build(A,L,mid);rt-right build(A,mid1,R);rt-sum 0;if(rt-left){rt-sum rt-left-sum;rt-MAX max(rt-MAX, rt-left-MAX);rt-MIN min(rt-MIN, rt-left-MIN);}if(rt-right){rt-sum rt-right-sum;rt-MAX max(rt-MAX, rt-right-MAX);rt-MIN min(rt-MIN, rt-right-MIN);}return rt;}3. 查询 时间复杂度O(log⁡n)O(\log n)O(logn) vectorint query(TreeNode *rt, int s, int e)//查询区间的summinmax{if(s rt-end || e rt-start)return {0, INT_MAX, INT_MIN};//没有交集if(s rt-start rt-end e)return {rt-sum, rt-MIN, rt-MAX};//完全包含区间取其值//不完全包含左右查找vectorint l query(rt-left, s, e);vectorint r query(rt-right,s, e);//汇总信息vectorint summary(3);summary[0] l[0] r[0];summary[1] min(l[1], r[1]);summary[2] max(l[2], r[2]);return summary;}4. 修改 时间复杂度O(log⁡n)O(\log n)O(logn) void modify(TreeNode *rt, int id, int val){if(rt-start rt-end){ //叶子节点rt-sum val;//和为自身rt-MAX val;rt-MIN val;data[id] val;return;}int mid (rt-start rt-end)/2;if(id mid)modify(rt-right, id, val);elsemodify(rt-left, id, val);root-sum 0;if(rt-left){rt-sum rt-left-sum;rt-MAX max(rt-MAX, rt-left-MAX);rt-MIN min(rt-MIN, rt-left-MIN);}if(rt-right){rt-sum rt-right-sum;rt-MAX max(rt-MAX, rt-right-MAX);rt-MIN min(rt-MIN, rt-right-MIN);}}5. 完整代码及测试 /*** description: 线段树* author: michael ming* date: 2020/3/13 0:21* modified by:* Website: https://michael.blog.csdn.net/*/ #includevector #includeiostream #includeclimits using namespace std; class TreeNode { public:int sum;//区间和int MAX;//区间最大的int MIN;//区间最小的int start, end;//区间左右端点TreeNode *left, *right;//左右节点TreeNode(int s, int e, int v):start(s),end(e),sum(v){left right NULL;MAX v;MIN v;} }; class SegmentTree { public:TreeNode* root;vectorint data;SegmentTree(vectorint A){root build(A, 0, A.size()-1);data A;}~SegmentTree(){destroy(root);}void destroy(TreeNode* rt){if(!rt) return;destroy(rt-left);destroy(rt-right);delete rt;}TreeNode* build(vectorint A, int L, int R){if(L R)return NULL;TreeNode* rt new TreeNode(L,R,A[L]);if(L R)return rt;int mid L((R-L)1);//对半分开rt-left build(A,L,mid);rt-right build(A,mid1,R);rt-sum 0;if(rt-left){rt-sum rt-left-sum;rt-MAX max(rt-MAX, rt-left-MAX);rt-MIN min(rt-MIN, rt-left-MIN);}if(rt-right){rt-sum rt-right-sum;rt-MAX max(rt-MAX, rt-right-MAX);rt-MIN min(rt-MIN, rt-right-MIN);}return rt;}vectorint query(TreeNode *rt, int s, int e)//查询区间的summinmax{if(s rt-end || e rt-start)return {0, INT_MAX, INT_MIN};//没有交集if(s rt-start rt-end e)return {rt-sum, rt-MIN, rt-MAX};//完全包含区间取其值//不完全包含左右查找vectorint l query(rt-left, s, e);vectorint r query(rt-right,s, e);//汇总信息vectorint summary(3);summary[0] l[0] r[0];summary[1] min(l[1], r[1]);summary[2] max(l[2], r[2]);return summary;}void modify(TreeNode *rt, int id, int val){if(rt-start rt-end){ //叶子节点rt-sum val;//和为自身rt-MAX val;rt-MIN val;data[id] val;return;}int mid (rt-start rt-end)/2;if(id mid)modify(rt-right, id, val);elsemodify(rt-left, id, val);root-sum 0;if(rt-left){rt-sum rt-left-sum;rt-MAX max(rt-MAX, rt-left-MAX);rt-MIN min(rt-MIN, rt-left-MIN);}if(rt-right){rt-sum rt-right-sum;rt-MAX max(rt-MAX, rt-right-MAX);rt-MIN min(rt-MIN, rt-right-MIN);}} }; //-------------test--------------------- void printVec(vectorint a) {for(auto ai : a)cout ai ;cout endl; }int main() {vectorint v {1,2,7,8,5};printVec(v);cout 建立线段树 endl;SegmentTree sgtree(v);printVec(sgtree.data);cout 查询区间的sumMINMAX endl;vectorint qy_res sgtree.query(sgtree.root,1,3);printVec(qy_res);cout 修改某位置的值 endl;sgtree.modify(sgtree.root,1,100);printVec(sgtree.data);cout 查询区间的sumMINMAX endl;qy_res sgtree.query(sgtree.root,1,3);printVec(qy_res);return 0; }运行结果valgrind ./a.out 16895 Memcheck, a memory error detector 16895 Copyright (C) 2002-2017, and GNU GPLd, by Julian Seward et al. 16895 Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info 16895 Command: ./a.out 16895 1 2 7 8 5 建立线段树 1 2 7 8 5 查询区间的sumMINMAX 17 2 8 修改某位置的值 1 100 7 8 5 查询区间的sumMINMAX 115 7 100 16895 16895 HEAP SUMMARY: 16895 in use at exit: 0 bytes in 0 blocks 16895 total heap usage: 29 allocs, 29 frees, 616 bytes allocated 16895 16895 All heap blocks were freed -- no leaks are possible 16895 16895 For counts of detected and suppressed errors, rerun with: -v 16895 ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)相关题目LintCode 207. 区间求和 IIhard
http://www.sadfv.cn/news/328816/

相关文章:

  • 吴江建网站优荐苏州聚尚网络望野博物馆馆长
  • 郑州炫彩网站建设网页开发者模式怎么打开
  • 制作企业网站方案网站手机模板的特点
  • 做哪类视频网站需要视频牌照个人网站建设教程pdf
  • 兰州网站建设redu上海浦东新区娱乐场所最新通知
  • 站长之家ppt素材国外手机模板网站推荐
  • 网站界面设计规则wordpress更新 无法创建目录
  • wordpress站长统计插件网站被spider重复抓取
  • 如何建设网站济南兴田德润o简介电话正规网站建设公司哪家好
  • 简约大方网站哪个网站可以接加工单
  • 可以做外链的网站平台自己做项目的网站
  • 大气的网站设计长沙seo外包优化
  • 网站如何做谷歌优化企业产品展示网站模板
  • 联想公司网站建设现状玉林网站开发
  • 网站建设与开发学习win8风格网站开发实例
  • 烟台开发区网站制作公司发布企业信息的网站
  • 珠海网站建设报价公司注册资本多少有什么关系
  • 雅安网站建设网站主页
  • linux建设一个网站网站上面的体验卡怎么做
  • 做网站网页兼容性网站作业免费下载
  • 营销型网站建设是什么意思深圳网站设计平台
  • 义乌建设网站制作多屏网站建设
  • 平台网站建设设计framework7做网站
  • 分类网站发布信息有生意做吗万商云集(成都)科技股份有限公司
  • 长沙做网站好的公司有哪些网站友链查询
  • 信息推广平台官网优化 报价
  • 建设网站的意义 作用是什么商务网站规划与设计实训心得
  • 长沙网站设计公司排名南宁网站建设加q.479185700
  • 青岛李村网站设计公司酒店类网站建设方案书
  • 门户网站优化方案免费企业网站建设哪种