首页 > 其他分享 >「UR#2」树上 GCD

「UR#2」树上 GCD

时间:2024-02-07 21:22:21浏览次数:40  
标签:log 复杂度 分治 UR 考虑 树上 nB 根号 GCD

题目链接

讲的是一个较劣的做法。

先转换成求 \(\gcd\) 为 \(d\) 倍数的种数。考虑无脑上根号分治。设阈值为 \(B\),我们对不超过 \(B\) 的 \(d\) 暴力求。怎么求呢?我们有一个十分巧妙的方法,记录每个点子树与它距离为 \(d\) 的倍数的节点数,这样直接树上乱做一下就可以了,答案也是非常容易求的。这部分的时间复杂度是 \(O(nB)\)。再考虑超过 \(B\) 的 \(d\),我们可以直接考虑保存下来每一个节点所对应子树的所有点的深度。这可以方便地使用启发式合并求出。考虑怎么算答案,发现就是两个集合合并时进行计算。然后是 \(O(n^2\log n)\) 的智障做法。但是考虑当两个集合都大于 \(B\) 时才有贡献。这时只会计算 \(O(\dfrac{n}{B})\) 次。总复杂度 \(O(nB+\dfrac{n^2}{B}\log n)\)。取 \(B=\sqrt{n\log n}\) 时复杂度最优,为 \(n\sqrt{n\log n}\)。

总结,这种题就是,你很难感觉他是根号分治,但是知道根号分治后又觉得很自然。还是练少了导致的。

标签:log,复杂度,分治,UR,考虑,树上,nB,根号,GCD
From: https://www.cnblogs.com/tulipenoire/p/18011319

相关文章

  • Future和FutureTask
    (Future和FutureTask)Future类FutureTask叫未来任务,可以将一个复杂的任务剔除出去交给另外一个线程来完成Future主要方法get()get方法的行为取决于Callable任务的状态,只有以下5种情况:任务正常完成:get方法会立刻返回结果任务尚未完成:任务还没有开始或进行中,get将阻塞并......
  • 读论文-基于会话的推荐系统综述(A survey on session-based recommender systems)
    前言今天读的论文是一篇于2021年发表于"ACMComputingSurveys(CSUR)"的论文,文章写到,推荐系统在信息过载时代和数字化经济中非常重要。基于会话的推荐系统(SBRSs)是新的推荐系统范式,不同于其他模型化长期静态用户偏好的推荐系统,SBRSs专注于捕捉短期动态用户偏好。尽管SBRSs已被深......
  • 20-Recursive Types
    引入序列List、树Tree具有同样的特点:可能任意长短,但是结构简单并有规律相比于将这几种数据类型区分开,我们选择将它们概括为一种基本形式,即归纳类型利用变式类型和元组类型,我们尝试再次定义List如下:NatList=<nil:Unit,cons:{Nat,NatList}>引入一个递归操作符μ和......
  • 3 return2/14
    #include<bits/stdc++.h>usingnamespacestd;intmain(){intn;while(cin>>n){if(n==0)return0;intans=0,cnt=0;vector<int>a(n);for(auto&num:a){cin>>num;......
  • AWS Security Group Rule的限制问题
    需要维护一批IP白名单,一个个添加到securitygroup费时,而且以后还有其它机器和服务也需要用到,因此创建了一个Prefixlist(VPC-->Managedprefixlists)里面包含77个ip完成后尝试添加到EC2的securitygroup,却提示说:Themaximumnumberofrulespersecuritygrouphasbeenrea......
  • [Ngbatis源码学习] Ngbatis 源码学习之资源加载器 DaoResourceLoader
    Ngbatis源码阅读之资源加载器DaoResourceLoaderDaoResourceLoader是Ngbatis的资源文件加载器,扩展自MapperResourceLoader。本篇文章主要分析这两个类。1.相关类MapperResourceLoaderDaoResourceLoader2.MapperResourceLoader在介绍DaoResourceLoader之前有必要......
  • 前端开发时,什么时候url需要使用encodeURIComponent?
    在前端开发时,当需要将用户输入或者动态生成的字符串作为URL的一部分(特别是查询参数或路径片段)发送到服务器时,应当使用encodeURIComponent函数对字符串进行编码。以下是一些具体场景:查询参数:当你在URL中添加查询参数(queryparameters),例如通过?key=value的形式附加到URL末......
  • 使用IDEA直接连接数据库报错:Server returns invalid timezone. Go to 'Advanced' tab
    错误详情:使用IDEA直接连接数据库报错:Serverreturnsinvalidtimezone.Goto'Advanced'tabandset'serverTimezone'propertymanually.错误原因:MySQL驱动中默认时区是UTC,与本地时间有时差。解决方案:点开最右侧导航栏Advanced,找到serverTimezone,在value处填写GMT保存再......
  • Maven3.9.6 构建项目报错 Failed to execute goal org.apache.maven.plugins:maven-re
    在使用Maven3.9.6构建项目时,出现以下错误:[INFO][INFO]---resources:3.3.1:resources(default-resources)@service-sample---[INFO]Copying18resourcesfromsrc/main/javatotarget/classes[INFO]Copying15resourcesfromsrc/main/resourcestotarget/classes[IN......
  • 一个进入容器后curl的不对的问题诊断
    一个容器,进入容器的时候是否开启gpu,会导致curl的行为不一致。具体表现为容器开启--gpusall后进入容器,执行curl会出现“curl:symbollookuperror:curl:undefinedsymbol:curl_mime_free”错误诊断中,我先比对了两个--version是否一致。开启前和开启后的版本信息......