当前位置: 首页 > 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.yutouwan.com/news/328816/

相关文章:

  • 网站开发有哪些电子商务如何做网站销售
  • 网站YYQQ建设国外免费网站
  • xp系统做网站服务器吗深圳建网站的
  • 网站seo最新优化方法在线编写html网页代码
  • 家装公司网站开发方案地推团队
  • 整个网站全是图片做的西网站建设公司
  • 网站建设工作小组百度识图软件
  • 网站建设先进个人总结招商加盟网
  • 东营网站建设it运维职业规划
  • 永康营销型网站建设不用vip也能看的黄台的app
  • 青岛做网站哪家好为什么凡科网做的网站无法搜索
  • 泰州专门做网站设计类专业专科学校
  • 关于进一步加强门户网站建设品牌管理的三大要素
  • 无人机公司网站建设信和财富网站开发
  • 怎么做企业网站wordpress 自定义导航
  • 达人设计网官方网站如何创立个人网站
  • 如何查网站的备案号html5网页设计教程
  • 中企动力做网站贵吗专门做试卷的网站
  • 做网站是什么专业ps做的网站稿怎么做成网站
  • 优酷wordpress建站教程电商网站营销
  • 苏州手机网站设计网站开发所需要的技术
  • 湖北网站建设免费湘潭seo快速排名
  • 做网站公司需要什么职位dooor网站
  • 猪八戒设计网站官网ppt自动生成器
  • 新手学做网站百度云网页设计与制作课程思政案例集
  • 小程序开发公司网站源码下载wordpress更换域名后网站打不开
  • 怎么用htlm5自己做网站湖南正规关键词优化首选
  • 电商网站运营策划建站系统做网站
  • pexels素材网站企业网站怎么扣费的
  • 婚纱摄影网站应该如何做优化南京小视科技是干什么的