随笔分类 - 基本算法 离线/扫描线
摘要:【题目】 "E. NN country" 【题意】给定n个点的树和m条链,q次询问一条链(a,b)最少被多少条给定的链覆盖。$n,m,q \leq 2 10^5$。 【算法】树上倍增+二维数点(树状数组) 先从半链角度考虑 。将每条给定链和每个询问拆成向上的一段和向下的一段。那么假设询问的半链最低端
阅读全文
摘要:【题目】 "贝壳找房户外拓展(中等)" 【题意】给定$n \times m$的棋盘,q次操作:1.在一个列区间设置p和q。2.询问一个行区间,初始x为0,从左到右x=x p+q,求x。3.撤销一次设置操作。保证所有1和3都在2前面。$n,m,q \leq 10^5$。 【算法】扫描线+线段树 【题解
阅读全文
摘要:【算法】贪心扫描线(+堆) 【题意】给定n头牛有区间[a,b],m个防晒霜值为ai,每个可以使用bi次,每次可以使包含它的区间涂到防晒霜,问最多被涂牛数。 【题解】 参考:[bzoj1707]: [Usaco2007 Nov]tanning分配防晒霜 by czllgzmzl 本题同样是区间和点的贪
阅读全文
摘要:【算法】并查集+平衡树+数学+扫描线 【题解】 经典曼哈顿距离转切比雪夫距离。 曼哈顿距离:S=|x1-x2|+|y1-y2|<=c 即:max(x1-x2+y1-y2,x1-x2-y1+y2,-x1+x2+y1-y2,-x1+x2-y1+y2) 令X1=x1+y1,Y1=x1-y1,则转化为 切比
阅读全文
摘要:【算法】扫描线+平衡树(set) 【题解】很明显的二维偏序数点,排序后扫描线,现加点后查询答案。 则问题转化为一维偏序,显然贪心找第一个比当前大的最优,所以用平衡树维护。 记得开multiset!!! #include<cstdio> #include<algorithm> #include<cst
阅读全文
摘要:【算法】主席树||离线+树状数组 【题解】 主席树经典应用:找区间不同的数字个数。 做法:记录每个数上一次出现的位置last[i],对last建权值线段树,对于区间询问last[i]<L的数字个数。 注意权值范围是last[i],也即0~n。 注意x=0时返回,否则可能c<0就完了。 #includ
阅读全文
摘要:【关键字】偏序,数点,树状数组,线段树,扫描线。 因为涉及多种算法,所以整合到一起。 【扫描线】 二维数点,偏序 ★数点问题 ★关于偏序问题的一些总结 扫描线是一维离线的做法的统称,常用于解决k维偏序问题。 离线:将其中一维的询问排序后按顺序处理,从而实现按时间顺序处理的过程中可以O(1)统计空间上
阅读全文
摘要:【算法】扫描线:差分+树状数组 【题意】转化模型后:求每个矩形覆盖多少点和每个点被多少矩形覆盖。n<=10^5。 【题解】经典的扫描线问题(二维偏序,二维数点)。 数点问题 将所有询问离线并离散化,然后按从上到下排序。 对于点被覆盖问题: 扫描线从上到下进行,遇到矩阵上边界维护区间加,遇到矩阵下边界
阅读全文
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡
阅读全文