暴力美学
文章平均质量分 64
包含搜索、分块、莫队等暴力却有效的算法
Edward The Bunny
这个作者很懒,什么都没留下…
展开
-
[XSY3112] 接水果(树上包含路径,整体二分,扫描线)
给出一棵nnn个点的树。接下来给出PPP条树上路径ai→bia_i\to b_iai→bi,及其权值cic_ici。最后有QQQ个询问,每个询问给出一条树上路径ui→viu_i\to v_iui→vi,问在包含ui→viu_i\to v_iui→vi的所有树上路径中(包含指ui→viu_i\to v_iui→vi是ai→bia_i\to b_iai→bi的子路径),权值第kkk小的路径权值是多少?不妨设dep[u]<dep[v]dep[u]<dep[v]dep[u]<原创 2021-11-19 12:05:52 · 97 阅读 · 0 评论 -
[XSY3382] 专家系统(二分+线段树)
XSY3382二分ccc,问题变成能否用一个长ccc宽ccc的矩形框住至少kkk个点。二维数点问题考虑用扫描线解决。将所有点按照xxx从小到大排序。枚举一段xxx坐标相差不超过ccc的点(双指针推进),初始想法是根据这些点的yyy值建一棵权值线段树,维护yyy值在某段区间内的点的个数,然后判断能否找到一段长度为ccc的区间,包含了至少kkk个点。但发现很难进行下去,所以换一个想法,定义aia_iai为yyy值在区间[i,i+c][i,i+c][i,i+c]内的点的个数,根据yyy值建权值线段树,维原创 2021-10-02 11:33:40 · 108 阅读 · 0 评论 -
[XSY]Tree Ext(矩阵树定理,拉格朗日插值,最小生成树,二分)
Tree Ext这道题相当于把3道题合了起来。要求修复的边中恰好有 k 条白边:五颜六色的幻想乡(附拉格朗日插值法求多项式系数 )+bzoj2654 tree(WQS二分 新科技get)是最小生成树计数而非生成树计数:BZOJ1016」[JSOI2008] 最小生成树计数具体可以看看这篇博客,代码中的注释也解释得较清楚#include<bits/stdc++.h>#define int long longusing namespace std;const int mod=原创 2021-07-21 10:05:38 · 146 阅读 · 0 评论 -
[XSY] 计数(DP,NTT,分治)
计数考虑转化题目,变为网格上有若干个点,要从(0,0)(0,0)(0,0)走到(n,an+1)(n,a_{n+1})(n,an+1) ,每一步只能往右走一步或往上走一步,且若当前在(i,j)(i,j)(i,j) ,必须满足0≤j≤ai+10\leq j\leq a_{i+1}0≤j≤ai+1,其中an+1=ana_{n+1}=a_nan+1=an 。要对每个kkk求出有多少条恰走过kkk次形如(i,ai+1)→(i+1,ai+1)(i,a_{i+1})\to(i+1,a_{i+1})(i,ai+原创 2021-03-23 22:05:16 · 265 阅读 · 0 评论 -
CDQ分治与整体二分
首先说明,CDQ分治与整体二分都是离线算法CDQ分治:流程:1.我们要解决一系列问题,这些问题一般包含修改和查询操作,可以把这些问题排成一个序列,用一个区间[L,R]表示。2.分。递归处理左边区间[L,M]和右边区间[M+1,R]的问题。3.治。合并两个子问题,同时考虑到[L,M]内的修改对[M+1,R]内的查询产生的影响。即,用左边的子问题帮助解决右边的子问题。经典问题:三维偏序#include<iostream>#include<cstdio>#include&原创 2021-03-08 21:14:38 · 271 阅读 · 0 评论 -
[CF966E] May Holidays(树上数据结构问题、分块+虚树)
Description一个 n 个结点的有根树,每个结点 x 有一个值 txt_xtx,和一个颜色 (黑/白)。m 次操作:翻转某点颜色。询问有多少点 x 满足:x 为黑色,x 的白色后代数 > tx。n, m ≤ 10510^5105Solution令 wi = ti− 子树内白点数,那么询问就是 wi < 0 的黑点数,修改就是翻转颜色并将至根路径的w值+1/ − 1。思来想去好像没有什么奇妙的数据结构能在O(nlogn)O(nlogn)O(nlogn)或O(nlog原创 2021-02-04 16:52:53 · 149 阅读 · 0 评论