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

厦门网站建设 九来seo搜索引擎优化人才

厦门网站建设 九来,seo搜索引擎优化人才,网站推荐靠谱的日本,免费搭建视频网站前置知识:权值线段树,动态开点。 引入 我们先来看一道题: 永无乡包含 nnn 座岛,给出每座岛的重要度的排名,名次用 111 到 nnn 来表示。一开始有 mmm 条边连接,接下来有 qqq 次操作。操作分两种&#xff…

前置知识:权值线段树,动态开点。

引入

我们先来看一道题:

永无乡包含 nnn 座岛,给出每座岛的重要度的排名,名次用 111nnn 来表示。一开始有 mmm 条边连接,接下来有 qqq 次操作。操作分两种:

  • B x y 表示在岛与岛之间修建一座新桥。
  • Q x k 表示询问当前与岛连通的所有岛中第重要的是哪座岛。

第一眼看上去会发现权值线段树好像可以做,但是他有加边条件,这就使得普通的权值线段树做不了,我们这时候就需要一个新的做法,也就是线段树合并。

思路

线段树合并的一个重要前提就是你们根节点的区间是相同的。

我们合并两棵线段树其实就相当于将一棵线段树的信息附在另一棵线段树上面。

我们假设我们要合并线段树 AAA 和线段树 BBB ,且把线段树 BBB 的信息附在线段树 AAA 上。

我们可以从根节点同时往下枚举,分以下几种情况。

  • 如果这个点线段树 AAA 和线段树 BBB 都有,那么我们继续往下枚举。
  • 如果这个点线段树 BBB 有而线段树 AAA 没有,我们就可以把线段树 AAA 中这个点的父亲的儿子设为这个点并且不在继续往下枚举。
  • 如果这个点线段树 AAA 有而线段树 BBB 没有,我们就可以不再往下枚举。
  • 如果这个点线段树 AAA 和线段树 BBB 都没有,我们也可以不用再往下枚举了。

到此,我们线段树就合并完了。

代码

void merge(int &x1, int x2, int l, int r) {//x1是线段树A现在枚举到的节点,x2是线段树B现在枚举到的节点,l、r实现再枚举到的区间。if (!x1 || !x2)//如果这个节点线段树A没有或者线段树B没有x1 = x1 + x2;//因为这两个点至少一个是0,所以他们的和就是另外一个点。else {int mid = (l + r) / 2;merge(tree[x1].lson, tree[x2].lson, l, mid);merge(tree[x1].rson, tree[x2].rson, mid + 1, r);updata(x1);//记得合并完后要更新这个节点}
}

例题

  • 永无乡:洛谷
  • [USACO17JAN]Promotion Counting P:洛谷
http://www.15wanjia.com/news/34014.html

相关文章:

  • 做网站如何处理并发问题福建seo推广方案
  • 网站注册备案之后怎么做浏览器2345网址导航下载安装
  • 上海松江网站建设公司河南网站优化公司
  • 作文生成器网站网络营销有哪些推广方式
  • 做网站需要什么文件搜索引擎在线观看
  • 做旅游宣传不错的网站优化搜索引擎的方法
  • 深圳租赁住房和建设局网站大数据营销系统怎么样
  • 高端移动网站建设seo推广的常见目的有
  • div做网站网站推荐
  • 营销型网站建设的价格快速排名服务平台
  • 好的网站开发自学网站网络销售怎么样
  • 婚恋网站制作站长工具是做什么的
  • 家做网站排名优化公司电话
  • 汕头网站优化找谁seo的最终是为了达到
  • 做卖车网站需要什么手续费东莞外贸推广公司
  • 做网站的设计尺寸百度小程序
  • 最近中国新闻郴州seo网络优化
  • 网站去除前台验证码seo任务
  • 做素材网站如何赚钱怎么进行推广
  • 河间做网站icp备案查询
  • 18款禁用网站app破解版百度网络推广怎么做
  • 网站管理员登录入口深圳网络营销推广
  • 给网站栏目页做反链好吗电商推广平台有哪些
  • 轻松做网站网站客服系统
  • 备案名称和网站名称株洲发布最新通告
  • 城阳网站建设公司海外网络推广平台
  • 天天新品网做网站网络营销与网站推广的区别
  • 高中作文网官网seo排名优化怎么样
  • 建设企业网站公司价格搜索引擎优化排名培训
  • 三合一网站源码每日财经最新消息