首页 > 其他分享 >2404 杂题记录

2404 杂题记录

时间:2024-04-04 18:33:06浏览次数:25  
标签:势能 gcd 记录 复杂度 2404 区间 杂题 线段 log

1. 线段树维护 gcd

查线段树势能提到的一个例题。线段树势能里面强调线段树维护区间 gcd 的时间复杂度 为 遍历数组的复杂度 + 总 gcd 的时间复杂度,即 O(n + log C),均摊到每一个操作上就是 O(1 + log C / n) = O(1),所以我们可以 O(nlogn) 解决线段树维护区间 gcd。

不过网上做法好像和我想象的不一样(?)考虑由 gcd(a,b)=gcd(b-a,a) 得到 gcd(a,b,c) = gcd(gcd(a,b-a),gcd(b,c-b)) = gcd(a,b-a,c-b)。所以 gcd(a[l]...a[r])=gcd(a[l],gcd(b[l+1]...b[r])),其中 b 是 a 的差分数组。维护 b,可以 logn 得到 a[l],logn 得到 gcd(b[l+1]...b[r]),区间修改转单点修改了。

题外,如果不带区间修改,可以 st 表维护,logn 回答。题解

2. 势能线段树

口胡一下这个东西,也是在某题解看到了一眼就学了。学的挺一头雾水的。
这个东西实际应用其实就是在某些操作下,区间内的元素会在某些形式上趋于一样。比如区间取 min/max、区间开根、区间删除 >= p 的数等等。博客

重点我们要考虑一下它的证明。套路大概是:我们定义一个势能,观察这个势能的 变化次数上限 和 它单次变化带来的复杂度 的关系,然后利用全局的势能总和 去分析时间复杂度。
势能分析复杂度的帮助还是很大的,比如 这 些 。

以区间开根这个比较显然的例子举例,我们维护一下区间最大值和最小值,每次区间修改的时候,在 L<=l,r<=R 的时候我们不退出,而是判断 minmax 是否趋同,若是,区间 tag 变化;反之,递归下去。复杂度均摊不大,可能单 log 或双 log。区间去 maxmin 是单 log 的。区间开根例题 | 区间开根势能线段树

复杂度分析有点凌乱,唯一的启发可能是,对一些数值方面的操作,我们可以维护一下上下界,保证“在 L<=l,r<=R 时暴力递归下去处理的复杂度不高”。

标签:势能,gcd,记录,复杂度,2404,区间,杂题,线段,log
From: https://www.cnblogs.com/gsn531/p/18114468

相关文章

  • 记录一次Windows11本地部署Qwen1.5-0.5B AWQ模型的经历
    直接上代码,来自魔搭的模型通义千问1.5-0.5B-Chat-AWQ·模型库(modelscope.cn)frommodelscopeimportAutoModelForCausalLM,AutoTokenizerdevice="cuda"#thedevicetoloadthemodelontomodel=AutoModelForCausalLM.from_pretrained("qwen/Qwen1.5-0.5B-C......
  • 使用VPS搭建本地可以访问的gemini(个人记录)参考github,cloudflare,nginx
    第一步:购买一台VPS服务器,可以正常ping通google和baidu,不可细说 第二步:参考这个网站的docker部分,docker到linux服务器中,不使用vercel部署(被墙)https://juejin.cn/post/7317700926826922035docker项目地址:https://github.com/babaohuang/GeminiProChat/blob/main/README_cn.......
  • [ERROR] [Entrypoint]: Unable to start server 记录一次-docker-运行mysql-报错
    环境说明linux系统版本:lsb_release-a  docker版本:docker-v 不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。  mysql版本:5.7  .1.问题复现。使用命令启动mysql服务 dockerrun--name=mysql-it\-p3306:3308\-eMYSQL......
  • 大数据实验记录
    网卡在Ubuntu系统下浏览器无法上网,终端输入ifconfig查看,只能看到lo本地回环网卡,没有找到ens33网卡解决方法sudodhclientens33sudoifconfigens33创建普通用户打开一个终端(可以使用快捷键Ctrl+Alt+T),使用如下命令创建一个用户hadoop:sudouseradd-mhadoop-s/bin/ba......
  • 2024.4 第一周做题记录
    \(2024.4.2\)CF1336DYuiandMahjongSet题意:初始有一个值域在\([1,n]\)的多重整数集\(S\),且每个元素重复次数最多为\(n\),定义\(\operatorname{triple}(S)\)表示\(S\)中相同无序三元组数量,\(\operatorname{straight}(S)\)表示\(S\)中连续整数的无序三元组数量,告诉......
  • 全局统一返数据类型封装记录
    全局统一返回值封装​在SpringBoot中,实现全局统一返回值封装是一种常见的做法,它有助于保持API的一致性,并简化前端对响应数据的处理。创建一个响应体类,包含状态码、消息、数据等字段。这个类可以作为所有控制器返回值的通用格式。​下面通过三种类型的统一返回响应体来......
  • 备忘记录-20240404.构建服务的k8s资源清单
    导读记录一次搭建服务的成果框架graphTBC(Client)-->ig(ingress)ig-->np((nginx-php\nservice))ig-->tc((tomcat\nservice))np-->ng1(nginx)np-->ng2(nginx)ng2-..->ps((php\nservice))ng1-..->psps-->p1(PHP)ps-->p2(PHP)ps......
  • 将字符串转化为回文串,并记录方案
    #include<iostream>#include<stdio.h>#include<algorithm>#include<string>#include<cmath>#include<string.h>#defineR(x)x=read()#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;inline......
  • 2023.4 做题记录
    2023.4做题记录[NOIP2018提高组]旅行看到题目中要求\(m=n\)或\(m=n-1\),此时就应当分类讨论。①当\(m=n-1\)时:此时数据为一颗树。我们贪心的想:起始点为\(1\)的时候显然最优。对于每一个节点,在它子树内按照从小到大的顺序遍历显然最优。复杂度\(O(n\logn)\),瓶颈......
  • JavaWeb-01记录
    JWT令牌JSONWebToken作用:以json格式在各方之间安全传递信息,是数字签名的。格式:标头Header.有效载荷Payload.签名Signature前两部分用Base64编码,可以被前端翻译并理解。第三部分使用编码后的前两部分,加上一个密钥,用头部声明的加密算法进行签名,保证令牌没有被篡改。swagger生......