• 2024-09-29CDQ分治学习笔记
    CDQ分治学习笔记k维偏序问题求满足条件的二元组个数题意描述每个元素有\(k\)个值,要求满足(以\(k=2\)为例)\(a_j\lea_i,b_j\leb_i\)的点对个数。分析这实际上就是我们熟悉的逆序对问题,回忆一下我们是怎么处理的,首先来说,当\(a,b\)其中一个的含义是下标的时候可以直
  • 2024-09-19算法学习-CDQ分治
    对于二维偏序,为普通的求逆序对,只需要先排序一遍,然后树状数组或双指针即可而三位偏序甚至更高,则需要用CDQ分治,简单来说,就是将树状数组和双指针结合操作步骤如下:1.开始将数组按第一维排序,保证满足x性质2.在归并中,将左右分别按y排序,因为开始以x排序,所以保证了正确性,保证贡献从左
  • 2024-09-18关于一类偏序问题
    对于一类依赖偏序关系计算答案的问题,由于我们只关注元素之间的大小关系,从而可以通过特殊的枚举方式来避免多种情况分类讨论。常见方法有:\(\mathrm{<,>}\):通过从小到大的方式依次考虑元素。\(\mathrm{abs,max,min}\):通过拆成\(<\)或\(>\)的形式后,再从小到大考虑。
  • 2024-08-298.29 模拟赛
    S---【云智计划】---7月11日---模拟测#30div2【补题】-比赛-梦熊联盟(mna.wang)S---【云智计划】---7月11日---模拟测#30div1【补题】-比赛-梦熊联盟(mna.wang)预计\(100+70+0+50+45\),实际\(90+50+0+45+25\)。比赛复盘A一眼可做。分析了一下推出了一个三维偏序
  • 2024-08-232.基础优化技巧
    基础优化技巧1三分一般仍然是用二分+eps处理。01分数规划求解形如:有\(n\)个物品,每个物品有两个权值\(a,b\),选出一些物品,使得两个权值和的比值最大或最小。也就是另\(w_i=0/1\),最大化:\[\frac{\sumw_i\timesa_i}{\sumw_i\timesb_i}\]一般我们用二分答案处理,移项可得:
  • 2024-08-20序理论
    在\(sort\)的时候,我们的\(cmp\)函数应该满足\(<\)可什么是小于它需要满足什么性质才能等价于小于?序理论给出了严格的定义二元关系集合\(X\)和集合\(Y\)上的一个二元关系,\(G(R)\subseteqX\timesY=\{(x,y);x\inX,y\inY\}\)\(xRy\)成立当且仅当\((x,y
  • 2024-08-18题解:CF1630F Making It Bipartite
    题意图上有\(n\)个点,且具有点权,点权保证互不相同,若两个点点权有倍数关系,则两点之间有一边,问你最少删去多少个点能使图变为二分图。思路因为如果\(a\)是\(c\)的倍数且\(c\)是\(b\)的个数,所以\(a\)是\(c\)的倍数。由此可以看出,若\(a\)与\(b\)相连且\(b\)与
  • 2024-08-17二维偏序问题
    偏序关系:大概就是,满足自反性,反对称性,传递性。将严格偏序关系建图,可以得到一个DAG(有向无环图)二维偏序问题是:给定\(n\)个元素,每个元素有\(2\)个属性,定义某种偏序关系,对于所有\(x_i\),求\(x_j\precx_i\)的数量。一种基本的操作方法是,某个属性按大小排序,另一个属性利用树状
  • 2024-08-15浅谈偏序
    目录偏序和等价关系Dilworth定理定理1定理2(Dilworth定理)偏序和等价关系关系:设\(X\)是一个集合,\(X\)上的关系是\(X\)的元素的有序对集合\(X\timesX\)的子集\(R\)。我们把属于\(R\)的有序对\((a,b)\)写作\(aRb\)。把不属于\(R\)的有序对\((a,b)\)写作\(a\n
  • 2024-08-13cdq分治
    我觉得呢,cdq的本质就是在归并排序消掉一维的影响来处理多维偏序问题。既然本质跟二分有关,那很容易猜到cdq处理k维偏序的时间复杂度为\(O(Nlog^{k-1}N)\)三维偏序问题:形如:$求满足条件a_i<a_j,b_i<b_j,c_i<c_j且\(j!=i\)的j个数比较常考的就是三维偏序,一般做法就是sort消掉一
  • 2024-08-09[OI] 偏序
    \(n\)维偏序即给出若干个点对\((a_{i},b_{i},\cdots,n_{i})\),对每个\(i\)求出满足\(a_{j}\gta_{i},b_{j}\gtb_{i}\cdots,n_{j}\gtn_{i}\)的\(j\)的个数一维偏序直接用权值线段树或者树状数组.或者你直接离散化开桶前缀和.二维偏序考虑到先对全部点对按\(a_{i}\)
  • 2024-08-06【CDQ分治】【模板】三维偏序(陌上花开)
    P3810【模板】三维偏序(陌上花开)-洛谷|计算机科学教育新生态(luogu.com.cn)#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;template<typenameT>structBIT{#ifndeflowbit#definelowbit(x)(x&(-x));#endifintn;vector<T&
  • 2024-08-05lg省选计划笔记-基础优化技巧1
    基础优化技巧1三分求单峰函数极值点丢弃极值点一定不在的点,注意不能用于非严格单调的函数。由于区间长度可以随便取,可以把分段点取得很近,这个时候就相当于二分斜率前面比0大,极值点处等于0,后面小于001分数规划略。模型特征:答案是比率形式(取对数可以把根式和次方转换为乘
  • 2024-07-29数据结构优化DP
    51nod-基因匹配+luogu-【模板】最长公共子序列本题重在转化。由于最长公共子序列的下标是一个最长上升子序列,所以我们可以考虑把数字映射成下标,有多个就要倒序把每个值映射成多个不同的值,因为一个数有多种下标都是可取的。51nod-3976-最长序列与基本问题相同,但是需要根据长度插
  • 2024-07-23cdq分治
    简介前置芝士:归并排序。\(cdq\)分治是个离线算法,可以解决三维偏序或者优化\(dp\)。题目直接上个题目:陌上花开。维护三维偏序有个口诀:一维排序,二维归并,三位数据结构。考虑第一维直接排序解决掉,然后还剩两维。我们考虑第二维用归并排序解决掉。然后假设当前区间\([l,r]\),
  • 2024-07-10cdq分治
    cdq分治其大致形式为递归左右半边考虑左半边对右半边的影响二维偏序(归并排序):计算数对\((i,j)\)满足\(a_i<a_j\)并且\(b_i<b_j\)的数对数量先以\(a_i\)排序,这样条件被转换为\(i<j\)且\(b_i<b_j\)考虑cdq分治先递归左右半边对左右两边各开一个指针,若\(b_i<b_
  • 2024-07-09三维偏序的优秀做法
    感觉挺厉害的。我们使用\(f_i\)表示恰有\(i\)维满足偏序的数对\((x,y)\)的个数,\(g_i\)表示钦定\(i\)维满足偏序对的数对\((x,y)\)的个数。那么对于三维偏序:\[g_0=\dbinom{0}{0}f_0+\dbinom{1}{0}f_1+\dbinom{2}{0}f_2+\dbinom{3}{0}f_3=f_0+f_1+f_2+f_3\]\[g_1=\db
  • 2024-06-23【离散数学·关系】(复习)
    一、1.集合上的二元关系:集合A上的二元关系R是A×A的子集或从A到A的关系。2.笛卡尔积:A×B={(a,b)| 且}问:集合A有多少种关系? 种。(因为笛卡尔积A×A的基数为)3.aRb表示(a,b)R。4.other:二、关系的性质1.自反性:矩阵对角线上为1;2.对称性:矩阵关于主对角线对称;3.反对称性:说
  • 2024-06-07瞎记一些匹配相关定理的证明
    由于公式打不熟练,以下表达上可能会有很多不严谨的地方以及一些笔误。Hall'sTheorem\(S_1,S_2,\cdots,S_m\)存在一组相异代表系(SDR)\(\Leftrightarrow\)\(\forallI\subseteq\{1,2,\dots,m\},|\bigcup_{i\inI}S_i|\geq|I|\)。以二分图为背景就是二分图存在一个完美匹配
  • 2024-05-292024_5_29 狄尔沃斯定理(偏序集)
    偏序集中的反链是其元素两两不可比的子集,而链是其元素两两可比的子集。链分解是将偏序集中的元素划分为若干无交的链。狄尔沃斯定理指出,有限偏序集合中,包含元素最多反链的元素数等于包含链数最少的链分解的链数,这个量被定义为该偏序集的宽度。对于任意有限偏序集,其最大反链中元素
  • 2024-05-22回首看去来时的路已经不知不觉地被白色的天空掩埋
    2024.5.22ZROI-樂園对于\(n\)个三元组\((a_i,b_i,c_i)\),如果任意两个三元组互不相同,那么我们可以在\(O(n\logn)\)时间内求出三维偏序对的数量:首先按照每一维从小到大排序,按照这个顺序重新分配每一维,使得每一维都构成一个排列然后,考虑二项式反演,设\(f_i,g_i\)分别
  • 2024-05-07YC281A [ 20240429 CQYC省选模拟赛 T1 ] 玫瑰(rose)
    题意给定数列\(A,B,C\),每次操作,你可以花\(1\)的代价将\(A_i\)或\(B_i\)或\(C_i\)增加\(1\)。求使得三个数列每个元素排名相同的最小代价。\(n\le500\)Sol很厉害的题目。首先注意到这个最优方案只和前缀最大值有关,考虑设\(f_{i,j,k}\)表示当前状态枚举到了
  • 2024-05-04树状数组(二维偏序)
    题目链接https://leetcode.cn/problems/maximum-sum-queries/description/题目大意题目思路二维偏序问题->一维排序,一维树状数组!题目代码classSolution{public:intsz;vector<int>tr;intlowbit(intx){returnx&-x;}voidupdate(intx,intk)
  • 2024-05-04cdq 分治
    1概念cdq分治,是一种分治思想而非具体算法。它是基于分治思想,将复杂的问题拆分求解。与一般分治算法不同的是,一般分治所拆分的子问题互相独立、互不干扰、形式与原问题一致。而在cdq分治中,每次划分出的两个子问题,是利用前面的子问题解决后面的子问题。也就是说,对于序列\([l,
  • 2024-04-25三维偏序
    cdq分治:一个长度为\(n\)的序列,统计有一些特性的点对\((i,j)\)的数量/找到一对点\((i,j)\)使得一些函数的值最大。对于这一类问题,我们考虑使用\(\rmcdq\)分治思想来解决。什么是\(\rmcdq\)分治思想?\(\rmcdq\)解决这种问题所使用的是分治思想,但却有些不同,具体