首页 > 其他分享 >偏序问题

偏序问题

时间:2024-02-02 19:55:07浏览次数:25  
标签:偏序 树状 int 问题 vis ti 排序

一维偏序

归并排序即可。

二维偏序*

又称“二维数点”,只需按照 x 坐标排序后按照一维偏序的方法即可。

三维偏序

考虑按照 \(x\) 排序,设左右两边分别为 \(L\) 和 \(R\) ,此时对于 \(i\in L,j\in R\),存在 \(x_i<x_j\),我们已经圧掉了一维。考虑如何圧掉第二维。明显,\(L\) 中的点都有可能对 \(j\) 产生贡献。我们分别在 \(L\) 和 \(R\) 按照 \(y\) 排序。注意,我们目前只考虑 \(L\) 对 \(j\) 的贡献,\(R\) 中的点对 \(j\) 的贡献会在分治中得到体现。设排序后 \(L\) 部分为 \(l_1,l_2,l_3,\ldots ,l_{mid}\) ,\(R\) 部分同理。先只考虑 \(r_1\)。把 \(i\) 作为 \(L\) 部分的指针,直到枚举到第一个 \(l_i.y>r_1.y\),枚举过程中把 \(l_i.z\) 放入树状数组,统计答案。对于 \(r_2\) ,显然可以延续 \(r_1\) 查询过程中在树状数组上的成果,然后按照刚才的逻辑移动指针即可。

注意,当一次处理完成后要合并区间时,要注意清空树状数组,小常数写法(from syz):


struct fenwick{
	int c[N],vis[N],ti;
	fenwick(){
		memset(c,0,sizeof(c));
		memset(vis,0,sizeof(vis));
	}
	inline void add(int x,int w){
		while(x<=k){
			if(vis[x]!=ti) vis[x]=ti,c[x]=0;
			c[x]+=w;
			x+=lowbit(x);
		}
	}
	inline int sum(int x){
		int res=0;
		while(x){
			res+=c[x]*(vis[x]==ti);
			x-=lowbit(x);
		}
		return res;
	}
	inline void clear(){
		ti++;
	}
}BIT;

运用了可持久化的思想。
然后一个 c[x],我们记录一下其最后一次被修改的时间 ti
如果 ti[x]!=nowti,那么说明这个位置无效

标签:偏序,树状,int,问题,vis,ti,排序
From: https://www.cnblogs.com/BYR-KKK/p/18003745

相关文章

  • 关于Nest.js循环引用问题的总结
    首先上代码 这个东东中,AuthService就是触及了循环依赖的东西(纯自学搞了半天才找出毛病),首先什么是循环依赖,唉!问题来了在某些文章是这样说的"Circulardependency"error¶偶尔你会发现在你的应用程序中很难避免circulardependencies。您需要采取一些步骤来帮助Nest解......
  • 如何优雅的处理特殊的子集 dp 问题
    sosdp&高维前缀和求\[g_i=\sum_{j\&i>0}f_j(i\leq2^n-1)\]我们将\(i,j\)进行二进制拆分,拆成\(n\)个维度。类似于:\[g_{a_1,a_2,a_3,a_4,a_5...a_n}=\sum_{a_k\leqb_k}f_{b_1,b_2,b_3,b_4,b_5...b_n}(a_i,b_i\subseteq\{0,1\}......
  • XmlDocument 解决 Clone、CloneNode、ImportNode 等节点克隆后的标签自闭合问题
    前言:这两天在对Taurus.Mvc 做html 加载性能优化时,发现存在这个问题。具体优化的是CYQ.Data 组件的XHtmlAction 相关类。问题过程:之前XmlDocument 调用 LoadXml(xml)之后,缓存对象,再次使用时,都是重新LoadXml:XmlDocumentnewDoc=newXmlDocument();......
  • 基于客户真实使用场景的云剪辑Timeline问题解答与代码实操
    本文为阿里云智能媒体服务IMS「云端智能剪辑」实践指南第6期,从客户真实实践场景出发,分享一些Timeline小技巧(AI_TTS、主轨道、素材对齐),助力客户降低开发时间与成本。欧叔|作者故事的开始要从一条客户的真实反馈说起。  Round1:视频比音频长,怎么办?某天,一位客户加入了智能媒......
  • 盘点那些硬件+项目学习套件:Hi3861鸿蒙开发板及入门常见问题解答
    华清远见20岁了~过去3年里,华清远见研发中心针对个人开发板业务,打造了多款硬件+项目学习套件,涉及STM32单片机、嵌入式、物联网、人工智能、鸿蒙、ESP32、阿里云IoT等多技术方向。今天我们来盘点一下,比较受欢迎几款“硬件+项目”学习套件,以及一些初学者比较关注的问题。盘点二:Hi3861......
  • fatal: couldn't find remote ref master 问题解决!
    这个错误信息通常出现在使用Git命令尝试从远程仓库克隆、拉取(pull)或推送(push)时,指定的分支(在这个案例中是master)在远程仓库中不存在。这种情况可能由以下几个原因导致:1.分支名称错误远程仓库中不存在名为master的分支:随着Git和GitHub的更新,master分支被重新命名为main......
  • scp命令的问题
    rsaUnabletonegotiatewith192.168.20.10port22:nomatchinghostkeytypefound.Theiroffer:ssh-rsascp:Connectionclosed手动指定加密方式为rsascp-oHostKeyAlgorithms=ssh-rsasftp不支持sh:/usr/libexec/sftp-server:Nosuchfileordirectoryscp:C......
  • 莫比乌斯反演——优美地解决容斥问题
    莫比乌斯反演假设现在有一个函数\(f\),令\(F(n)=\sum\limits_{d|n}f(d)\),如\(F(1)=f(1),F(4)=f(1)+f(2)+f(4)\),现在我们要通过\(F\)反推\(f\),如\(f(1)=F(1),f(4)=F(4)-F(2)\),这就是莫比乌斯反演。可以推出这样的公式:\(F(n)=\sum\limits_{d|n}f(d......
  • AI监控+智能充电桩系统如何缓解新能源汽车充电难问题
    在新能源汽车行业的快速发展中,充电桩作为重要的配套设施,其建设和发展至关重要。随着新能源汽车销量的增长,补能需求也日益迫切,这为充电桩行业的发展提供了巨大的机遇。然而,充电桩行业在快速发展的同时,也暴露出一些短板和问题:1、充电桩的数量更是有限,给车主带来很大的不便;2、充电......
  • GPT回答的问题
     深度学习中存在一些问题,包括但不限于以下几个方面:贝叶斯理论与深度学习:深度学习模型的训练和推断方法通常基于概率论和统计学原理,但与贝叶斯推理理论的融合仍存在一些挑战和问题。解释性和可解释性:深度学习模型往往被视为“黑匣子”,其决策过程不太可解释。如何提高深度学......