摘要: 状态压缩动态规划 状压DP 概念: dp的本质是记忆化搜索,而状压dp就如优雅的暴力。 状态压缩动态规划,就是我们俗称的状压DP,是利用计算机二进制的性质来描述状态的一种DP方式很多棋盘问题都运用到了状压,同时,状压也很经常和BFS及DP连用,例题里会给出介绍有了状态,DP就比较容易了 举个例子:有 阅读全文
posted @ 2019-08-01 16:04 milkitblogcn 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 我们通常会遇到维护一个序列(区间)的问题,如区间修改,区间查询,单点修改,单点查询。 A:我会暴力! B:我会分块!! 可是题目数据是个出题人就会卡暴力,只要1e5就轻松卡掉你。有人说他可以手动开O1,O2,O3,那都是弟弟们的做法。所以我们正式引入数据结构--线段树。 线段树 线段树是一棵二叉树, 阅读全文
posted @ 2019-07-31 10:29 milkitblogcn 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 逆元 逆元是一个非常牛逼的东西。求法很多,又很实用。 它可以分为乘法逆元和加法逆元: 乘法逆元:如果ab==1(mod p)则我们称b是a关于p的(乘法)逆元; 加法逆元:如果a+b=0则我们称b是a的(加法)逆元。 a^-1==b(mod p)-> ab==1(mod p) a^-1==b(mod 阅读全文
posted @ 2019-07-28 12:21 milkitblogcn 阅读(283) 评论(0) 推荐(1) 编辑
摘要: LCA(Least Common Ancestors) 是解 决很多树上问题都必须应用到的东西。 对于点集 S = a1, a2, ..., an 的最近公共祖先 LCAS 为 S 的 所有公共祖先中深度最深的那个。 即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先。 对于有根树T 阅读全文
posted @ 2019-07-26 20:11 milkitblogcn 阅读(374) 评论(0) 推荐(1) 编辑
摘要: 浅谈分块 区间修改,单点查询 众所周知,这种题线段树是可以跑得下来的,但是线段树的常数太大了,前几天本蒟蒻改一道线段树题改到自闭,调好之后就被卡掉了,太可怕了。蒟蒻就手残,打了一篇博客...... 分块大法 对于任意一个序列{a},给定两种操作: 0:给定l,r,c把l-r中a[i] (l=<i<= 阅读全文
posted @ 2019-07-26 19:48 milkitblogcn 阅读(236) 评论(0) 推荐(0) 编辑
摘要: Tarjan算法是由Robert Tarjan发明的求有向图中强连通分量的算法。 强连通: 如果两个顶点可以相互通达,则称两个顶点 强连通(strongly connected)。如果有向图G的每两个顶点都 强连通,称G是一个强连通图。非 强连通图有向图的极大强连通子图,称为强连通分量(strong 阅读全文
posted @ 2019-07-26 19:43 milkitblogcn 阅读(201) 评论(0) 推荐(1) 编辑