首页 > 其他分享 >99th 2024/9/4 CDQ分治小结

99th 2024/9/4 CDQ分治小结

时间:2024-09-29 21:46:11浏览次数:6  
标签:frac 处理 99th mid 2024 leq CDQ 可以 最大值

概括

轻新小思路

用于处理点对关系题

在能将点对分段处理(如下)的题目中有奇效

试想,现在要处理部分点对,其范围为\(l\in [L,R],r\in [L,R]\)

其位置不确定,但是我们可以考虑将其分为三个板块分别作出的总贡献

即分为

\(l\in [L,mid],r\in[mid+1,R]\)

\(l\in [L,mid],r\in[L,mid]\)

\(l\in [mid+1,R],r\in[mid+1,R]\)

后面两者发现于一开始的大区间形式相同,可以递归处理,而第一类区间有着性质

即这些点是分开的,可以进行特殊处理

如三维偏序中,一开始可以排序确定一维的单调性,然后在处理这一类区间时,因为\([L,mid]\)中第一维一定大于\([mid+1,R]\)的第一维

所以可以将\([L,mid],[mid+1,R]\)中的数分别再通过第二维排序,这样就能在保证第一维的前提下,将第二,第三维同时也处理了

然后有例题Beautiful Pair

这题乍一看并没有什么像三维偏序一样明显的,可以通过分治为\([L,mid],[mid+1,R]\)的方式

However,可以进行深入思考

如很明显地,在处理特殊区间时可以处理出前/后缀最大值

没思路,先摸式子

看到\(a_i\cdot a_j\leq max\)可以换成\(a_i\leq \frac{max}{a_j}\)

可以考虑固定一边最大值,这样整个区间的最大值就能够被确定,因为处理了前/后缀最大值,所以上式可以替换为\(a_i\leq \frac{pre_j}{a_j}\)

这样就有一个显然的处理方式:可以设当最大值在左/右边时,对于其相反的一边,\(a_i\leq \frac{pre_j}{a_j}\)或\(a_j< \frac{suf_i}{a_i}\)的有多少

但是这样处理需要线段树或主席树(主席树处理更麻烦但是更方便),而数据范围是\(1e9\)

然后发现实际上需要记录的只有\(a_i\)和\(\frac{pre_i}{a_i}\)或\(\frac{suf_i}{a_i}\)

实际上只有\(2n\)种,可以离散化

由此可切

小结

学算法或DS后一定要先联系其他要用这种算法/DS的题目以构建知识体系

标签:frac,处理,99th,mid,2024,leq,CDQ,可以,最大值
From: https://www.cnblogs.com/tlz-place/p/18440822

相关文章

  • 98th 2024/9/4 VP-ARC183小结
    洪文局A很快打出来了,但还是不够快因为要构造出最中间的那个序列,所以很显然可以直接构造因为要最中间,所以试一试就可以直接试出\(n\)为偶数的样式,然后\(n\)为奇数的可以通过把最中间的数字全部放到最前面,然后在构造二实现这题简单就简单在做它的办法太多了,没思路打个暴力也能找......
  • 2024 Noip 做题记录(三)
    \(\text{ByDaiRuiChen007}\)Round#9-2024.9.23A.[P10849]LevelProblemLink题目大意给定若干人和空位,等级\(1\simn\),其中等级为\(i\)的人和空位分别有\(b_i,a_i\)个,给每个人匹配一个位置,如果一个等级为\(i\)的人匹配了一个等级为\(j\)的位置,会产生\(\ma......
  • CDQ分治学习笔记
    CDQ分治学习笔记k维偏序问题求满足条件的二元组个数题意描述每个元素有\(k\)个值,要求满足(以\(k=2\)为例)\(a_j\lea_i,b_j\leb_i\)的点对个数。分析这实际上就是我们熟悉的逆序对问题,回忆一下我们是怎么处理的,首先来说,当\(a,b\)其中一个的含义是下标的时候可以直......
  • 大模型学习路线:这会是你见过最全最新的大模型学习路线【2024最新】
    大模型学习路线建议先从主流的Llama开始,然后选用中文的Qwen/Baichuan/ChatGLM,先快速上手体验prompt工程,然后再学习其架构,跑微调脚本如果要深入学习,建议再按以下步骤,从更基础的GPT和BERT学起,因为底层是相通的,而且实际落地到一个系统中,应该也是大模型结合小模型(大模型在做判......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的贸易行业crm系统(源码+lw+部署文档+讲解
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的智慧图书管理系统(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的线上辅导班系统的开发与设计(源码+lw+部
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 2024最新高分源码基于SpringBoot+Vue+uniapp的智能无人仓库管理(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 20240912
    Stringofyuusaan我们可以打表,我们会发现字符串无论重复多少次都会遵循这个规律#include<bits/stdc++.h>usingnamespacestd;#defineintlonglonginta,b;signedmain(){cin>>a>>b;b--;intx=b%12;if(x==0){cout<<"y";......
  • 2024 最新 Navicat Premium 17.0.13 简体中文版(亲测可用)
    步骤如下:一、官网下载安装包:https://www.navicat.com.cn/download/navicat-premium  二、安装NavicatPremium17  注意:安装完后不要打开已打开自行退出三、补丁下载关注后发送“navicat17”即可获取补丁下载地址,无套路。 四、安装补丁先将下载下来的压缩包里面......