全纪录系列
Coco_T_
东南大学本科毕业生,浙江大学在读研究生
展开
-
扫描线+可并堆全纪录
两个看似没什么关联的数据结构,因为两者做的题都不多所以放到一起总结一下扫描线感觉扫面线的经典题目就是面积和周长,不过有时候题目的转化也是挺巧妙的 例如:给出若干有权点和一个矩阵,求矩阵能框住的最大权值 我们把每个点看做是一个矩阵,求这些矩阵∩的最大值,扫描线求最大值即可经典例题:扫描线求矩形面积并 经典例题:扫描线求矩形周长并 经典例题:扫描线+主席树由于扫描线多在平面...原创 2018-03-29 19:59:22 · 291 阅读 · 0 评论 -
树形结构全纪录(当然并不全)
这一部分的内容可以说是最杂的 只能给出一些典型题和简单的知识讲解我们从简单的开始吧树的重心点分治的必要操作,难度:☆经典例题:树的重心void findroot(int now,int fa) { f[now]=0; size[now]=1; for (int i=st[now];i;i=way[i].nxt) if (way[...原创 2018-04-03 20:48:09 · 394 阅读 · 0 评论 -
块状链表全纪录
块状链表的简单介绍块状链表,可以说是一种很犯规的数据结构 支持动态的序列加入删除,询问区间和之类的操作同时拥有数组和链表的优点: 数组: 所有数据在内存中是紧凑储存的,优点是定位快:O(1) 链表: 通过指针将不同位置的元素链接起来:修改快 O(1)总的来说重要操作只有几个: 定位,分裂,插入,合并块状链表基础操作虽然说是链表,但是在实现的时候,我们还是用数组模拟 ...原创 2018-03-28 17:43:20 · 554 阅读 · 0 评论 -
二分+三分+莫队全纪录
二分+三分二分+三分讲解二分是一种很强的方法,不要因为ta太普遍而忽视 这里指出ta的必要条件:答案具有单调性已知答案的情况下,可以判定答案的可行性也就是说,如果我们发现一个问题不好直接求解,但是我们可以想办法判定一个解得正确性,那么就可以考虑二分三分实际上就是凸函数上的“二分” 一般用于凸包,二次函数等的最值求解 可能有些题目的凸性不那么明显,那么我们就可以手玩一...原创 2018-04-03 11:09:05 · 255 阅读 · 0 评论 -
字符串全纪录
字符串可以说是我比较薄弱的一块(想当初c++入门的时候就没有系统的学过字符串的读入。。。)KMPKMP算法是一种改进的字符串匹配算法 用于解决询问串中出现了多少次模式串 可以说是字符串中最简单的一种算法了匹配串的时候,如果匹配成功,模式串指针也要跳到失配上,便于下一步的匹配//字符串下标从0开始int t[N];void KMP() { t[0]=-1;...原创 2018-03-27 21:47:15 · 300 阅读 · 0 评论 -
点分治+CDQ分治+整体二分全纪录
点分治点分治讲解解决树上路径问题经典例题:点分治(长度小于m的路径计数) 经典例题:点分治(聪聪可可) 经典例题:点分治(多个定值路径计数) 经典例题:点分治(采药) 经典例题:点分治+ST表+优先队列 经典例题:点分治+FFT+概率期望 经典例题:点分治+01分数规划 舒老师推荐点分治(难)注意:点分治的常数比较大 每个点都会作为重心,然而每个点的遍历次数不止一次...原创 2018-04-02 21:03:12 · 1386 阅读 · 0 评论 -
FFT/NTT全纪录
FFT快速傅里叶变换,那么FFT到底有什么作用呢? 简单来说就是计算∑ni=0aibn−i∑i=0naibn−i\sum_{i=0}^{n}a_ib_n-i浅谈生成函数+卷积+FFT最常见的就是生成函数和FFT的结合(FFT只是计算的一种工具) 经典例题:生成函数+FFT 然而更进一步,生成函数是组合数学的一部分啊,可以解决从若干个集合中取元素得到贡献X的方案数 所以如果我...原创 2018-03-27 13:49:55 · 737 阅读 · 0 评论 -
线性规划+01分数规划全纪录
可能是因为名字里都有“规划”,所以才放在一起总结线性规划线性规划讲解一:引入 线性规划讲解二:单纯性算法线性规划问题有一些经典特征:若干变量之间满足等式或不等式的关系 目标函数可以抽象成若干变量的线性形式 求解最优解(最小或最大)常见的解决方法:单纯形算法: 只针对松弛型线性规划(等式) 一般情况下,约束条件和目标函数是若干变量之和的形式差分约束:...原创 2018-03-27 10:38:16 · 1985 阅读 · 0 评论 -
高斯消元+线性积全纪录
高斯消元高斯消元,方程组求解高斯消元的题目一般有以下特点:可以列出方程一般没有阶段性和次序性(不同于dp或搜索)由若干个状态确定一个已知状态最基础的,我们用double类型进行gauss 但是这种gauss有一个小缺陷:精度损失(毕竟gauss里面会有大量的除法) 以前有一道题就被卡精度,所以需要把系数化为一放在外面做法总结如下: 首先我们枚举未知量ii,同时记录一个n...原创 2018-03-26 21:55:23 · 624 阅读 · 0 评论 -
图论全纪录
最短路图论最基础的想必就是最短路啦图上的文章(再谈最短路问题)最短路能解决的问题:最短路? 话是这么说没错啦,不过一些题目隐藏的比较深,需要转化一下才能看出最短路的模型:经典例题差分约束系统对于差分约束我要说两句了简述给出若干形如xi<=xj+wxi<=xj+wx_ij−(w)−>ij−(w)−>ij-(w)->i 上面的三角不等式...原创 2018-04-01 16:28:05 · 273 阅读 · 0 评论 -
平衡树+LCT全纪录
平衡树(splay)平衡数模板平衡树能干些什么呢?插入一个数删除一个数查询数xxx的排名(小于xxx的元素个数)查询排名为xxx的数查询xxx的前驱(小于xxx且最大的数)查询xxx的后继(大于xxx且最小的数)区间翻转区间加乘(像线段树一样打标记即可)但是平衡树有一个缺陷,不能在区间层面上进行上述操作所以我们可以在外面套上一层线段树(线段树套splayspl...原创 2018-04-01 20:53:26 · 300 阅读 · 0 评论 -
2-SAT全纪录
blog里没有特别详细的讲解,所以献上dalao的讲解 不过2_SAT的模型还是很典型的:形式有点想网络流给出若干集合,集合大小一般为2一般每个集合中必选一个元素,非此即彼元素之间有一些奇怪的限制我们通过这些限制条件建图,永远记住:沿着图上的边前进代表must choose一个限制条件可能需要多条边去表示,所以记录端点和边的空间一定要计算清楚2_SAT的精髓还是在于如何建图...原创 2018-03-26 17:43:35 · 373 阅读 · 0 评论 -
网络流全纪录
网络流最明显的特征就是:既像dp,又像贪心 一些匹配向问题都可以往网络流方向想(棋盘交换,攻击伤害,工作安排,消除矛盾)最大流正难则反,大变小,流化割黑白染色,可以解决相邻结点不形容的问题一定要有限流(人+菜+房间,人放中间限制流量)【经典例题】行列成点(缩点)时间的推移可以枚举,每次新建一层点,上一层的点连向下一层的后继点表示时间的推移二分图两部分的点一般不是一模一样的...原创 2018-03-26 07:29:50 · 255 阅读 · 0 评论 -
反演&&杜教筛
大力鸣谢曲神的blog反演曾经naive的博主写的反演讲解 反演中常见公式杜教筛从未见过如此厚颜无耻之博主,说好了要讲反演nei,为什么只给两个链接??? 好吧,我承认这篇文主要是想说说自己对杜教筛的崭新认识,所以下面才是正文。。。学杜教筛之前,一定要做一件事:%糖教简介杜教筛是干什么的内?求解积性函数前缀和的有力工具 划重点:积性函数,前缀和...原创 2018-03-31 15:23:57 · 343 阅读 · 0 评论 -
KDtree全纪录
KDtree是一种很优秀的暴力(实质上也是线段树) 可以解决:n维k远点对问题 有些需要CDQ分治的难题,用KDtree就可以解决了(思维难度较小)经典例题:天使玩偶 KDtree CDQ分治 实测KDtree较快,然而dalao好像都不喜欢用这种暴力做法,都是推荐CDQ 然而蒟蒻就有蒟蒻的方法,暴力什么的先稳住再说找到了KDtree的复杂度分析: 构建:O(log2n...原创 2018-03-25 21:31:39 · 1129 阅读 · 0 评论 -
线段树+树链剖分全纪录
线段树最基础线段树,就是支持区间加乘,查询区间最值 总的来说,就是可以在区间上进行操作(给出的可能不是完整代码,不过都是精华) 代码中有几个细节需要注意:默认先乘后加,在计算值的时候统一表达式: t[bh].sum=( t[bh].sum*t[bh].mul%p + (t[bh].y-t[bh].x+1)*t[bh].ad%p )%p;永远记住:先维护值,再下传标记 标记下...原创 2018-03-25 20:16:03 · 440 阅读 · 0 评论 -
树状数组全纪录
为了让自己在AFO之前活的精彩一点,接下来的将近两周时间会陆续更新一些模板以及算法的注意事项 敬请期待全纪录系列最简单的树状数组就是一维 支持两套操作(不可混用)单点修改,区间查询区间修改,单点查询(配合查分)int n,c[N];void build() { for (int i=1;i<=n;i++) { c[i]=0; ...原创 2018-03-25 16:23:24 · 188 阅读 · 0 评论 -
主席树全纪录
主席树主席树讲解 感觉主席树就是一种功能强大的“前缀和” 裸题当然不多了,不过主席树的题目还是有一些特征的需要支持线段树的操作,同时需要历史版本多半解决第k大(权值主席树,可以查询小于某个值的元素个数) 重要的事情:可以查询小于某个值的元素个数,可以查询小于某个值的元素个数,可以查询小于某个值的元素个数主席树的形式是多种多样啦 比较常见的是建立在序列上:序列下标,时间推移 ...原创 2018-03-30 20:14:37 · 531 阅读 · 0 评论 -
计算几何全纪录
计算几何,分为二维和三维二维计算几何二维计算几何基础入门二维计算几何中,应用比较广泛的就是凸包和半平面交凸包几何意义上的凸包比较好理解 但是很多dp,分治题目中状态转移的最优点满足某种单调性,也就是说优秀转移点在凸包上 这种性质可能不好判断,不过斜率优化dp就是凸包和dp的完美结合经典例题:凸包 经典例题:线段树分治+凸包 经典例题:分块+凸包+三分注意...原创 2018-03-29 15:13:29 · 287 阅读 · 0 评论