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

网站 linux 服务器网片加工机器

网站 linux 服务器,网片加工机器,黄冈网站建设,东莞技术支持 骏域网站建设树链剖分这玩意儿还挺重要的,是解决静态树问题的一个很好的工具~ 这里主要介绍一下做题时经常遇到的两个操作: 1.在线求LCA int LCA(int x,int y){while(top[x]!top[y])if(dep[top[x]]>dep[top[y]]) xfa[top[x]];else yfa[top[y]];return dep[x]&l…

树链剖分这玩意儿还挺重要的,是解决静态树问题的一个很好的工具~

这里主要介绍一下做题时经常遇到的两个操作:

1.在线求LCA
int LCA(int x,int y){while(top[x]!=top[y])if(dep[top[x]]>dep[top[y]]) x=fa[top[x]];else y=fa[top[y]];return dep[x]<dep[y]?x:y;
}

这个非常重要!!!

在很多题目中,我们需要借助LCA 来解题

2.换根操作

换一个根就重新剖一次当然是不现实的

不妨就先以1号节点为根剖一下

树链修改值当然直接按照重链在线段树上改就好了

主要就是讨论以x为根的子树对于不同的根时的dfn序范围

那么设当前的根是root

①:x==root:范围当然就是全局

②:x不在1到root的链上,在其他的支叉上:root为根或是1为根没有影响,
按普通套路来,即范围是[dfn[x],dfn[x]+size[x]-1]

图中蓝色的标号就是根据轻重链剖分进行的树上节点再标号id,红色笔迹标出的每一条树链就是一条重链,可以根据这个图来感性理解一下x不在1到root链上时的范围为什么不变

③:x在1到root的链上:这就是要处理的重点了

上图中紫色圈出的节点即是当前root,绿色圈出的节点即是要查询的子树的根x,那么可以看出当前x在1到root的链上。思考现在x的子树,其实就是除去x往root方向的那个子树外,所有的节点

int query_son(int x){if(root==x) return st[1];if(LCA(x,root)==x){int ans=2147483647,from;for(int i=head[x];i!=-1;i=edge[i].nxt)if(LCA(edge[i].v,root)==edge[i].v){from=edge[i].v;break;}if(tid[from]>1) ans=min(ans,query(1,1,n,1,tid[from]-1));if(tid[from]+size[from]<=n) ans=min(ans,query(1,1,n,tid[from]+size[from],n));return ans;}return query(1,1,n,tid[x],tid[x]+size[x]-1);
}
http://www.yayakq.cn/news/686543/

相关文章:

  • 做网站映射tcp策划书网页设计方案
  • 网站建设企业 熊账号个人做外贸怎么做推广
  • 什么网站详情页做的好网站建设学生作业成品
  • 网站开发的类型郑州网站建设修改
  • 青岛网站建设企业建站网站代付系统怎么做
  • 中国网站建设市场分析无锡seo报价
  • 做yy头像的网站wordpress直接英文版
  • 扁平风格网站模板咸鱼之王小程序
  • 大连模板网站制作哪家好女生学软件工程很难吗
  • 模具机械设备东莞网站建设定制网站设计
  • 网站怎么做悬浮图片自己的网站如何优化
  • 西安专业网站制作网站关键词多少个好
  • 不同网站相似的页面百度不收录吗百度推广做网站
  • 交互式网站定义wordpress订阅者投稿
  • 黄山网站建设有哪些商标在线设计logo图案
  • 奇胜网络 邯郸网站建设做网站业务员应该了解什么
  • 灵山网站建设无忧建站
  • 建湖做网站多少钱什么是sem和seo
  • 网站广告模板代码做网站云服务期
  • 北京做环评备案的网站wordpress小图标大全
  • 网站设计师发展前景网站建设方面的书籍推荐
  • 网站推广与搜索引擎优化seo中文意思
  • 绍兴网站专业制作wordpress 新手教程
  • 网站设计的时间计划博客网站登录入口
  • 纯html5网站修改wordpress主体字体
  • 做网站平面一套多少钱asp网站架设教程
  • 做论坛网站的应用深圳专门网站建设
  • 深圳坂田做网站小程序开发流程
  • 专业网站建设分类标准如何安装网站模版
  • 做网站导航栏目怎么做浙江凌宇环境建设公司网站