05 2018 档案

摘要:非常好的一篇博客(LCT) 题解来源(LCT) 先抄了一遍板子【注意数据范围】 阅读全文
posted @ 2018-05-23 22:19 lnyzo 阅读(179) 评论(0) 推荐(0)
摘要:非常好的一篇博客(LCT) 时间效率相差不大 1.分块 2.LCT 思路概要:把该点连向跳到的点,并保证跳到的点深度比他小,则最后左儿子的siz+1即答案 阅读全文
posted @ 2018-05-23 21:33 lnyzo 阅读(274) 评论(0) 推荐(0)
摘要:对于区间翻转操作,将l-1(代码中建了[1,n+2]个点,故这里为l)先旋转到根,再将r+1(同上,这里为r+2)旋至其右儿子,则r+1的左儿子即我们要翻转的区间 tip:在find时已经更新了rev,所以可以splay 【感觉我的buildtr好恶心啊】 阅读全文
posted @ 2018-05-23 20:47 lnyzo 阅读(115) 评论(0) 推荐(0)
摘要:非常好的一篇博客 写下之前自己被困住的几个点吧: 1.access找的不是到真实的根的一条路径,而是到能找到的最上面的splay的根(makeroot同理) 2.findroot找的是x所在原树的树根(深度最小),并旋转至当前一棵splay的根 tips:具体的还是没特别懂,多做题吧 阅读全文
posted @ 2018-05-20 21:31 lnyzo 阅读(163) 评论(0) 推荐(0)
摘要:初始时将1的限制赋为无穷大,然后对每个节点贪心,从大往小取,知道能取得的元素的最大值小于0 比较唯一性时注意下 阅读全文
posted @ 2018-05-20 14:07 lnyzo 阅读(191) 评论(0) 推荐(0)
摘要:1.treap 一棵treap维护一下就可以了吧(压行导致代码格式不怎么美观) 2.splay 挺快的 阅读全文
posted @ 2018-05-19 09:52 lnyzo 阅读(131) 评论(0) 推荐(0)
摘要:1.treap 每个点建一棵treap,维护优先级,然后启发式合并两棵treap 2.splay 阅读全文
posted @ 2018-05-19 09:26 lnyzo 阅读(137) 评论(0) 推荐(0)
摘要:事实证明,数据存在负数? 用treap确实小题大做了 黄学长的hash自行了解 阅读全文
posted @ 2018-05-18 18:38 lnyzo 阅读(106) 评论(0) 推荐(0)
摘要:树形DP f[i][j]就表示以i为根的子树中染了多少个黑点。我们可以发现,假设枚举了一条边i(x,y,c),那么它对收益的贡献就是c*(x那边黑点的个数*y那边黑点的个数+x那边白点的个数*y那边白点的个数)。假设在做以x为根的子树,枚举到了它的儿子y,然后就枚举x子树中黑点的个数i和y子树中黑点 阅读全文
posted @ 2018-05-18 14:50 lnyzo 阅读(134) 评论(0) 推荐(0)
摘要:板子,和1941非常像 阅读全文
posted @ 2018-05-16 20:33 lnyzo 阅读(150) 评论(0) 推荐(0)
摘要:K-D TREE算法原理及实现 板子题,但这题很神奇的是加了一个优化以后直接从11292ms跑成了1548ms(即代码中替换掉注释部分的内容) 优化具体原理应该是先将maxans/minans尽量放大/减小 这题求的是每个点到其他点的最长路径和最短路径,符合kd-tree的应用范围,那么优化的暴力就 阅读全文
posted @ 2018-05-16 19:30 lnyzo 阅读(150) 评论(0) 推荐(0)
摘要:不建议用cdq,内存达到了159024kb,时间4468ms 这题cdq的想法是:对于两个点(x,y)和(u,v)组成的矩形,我们可以想象成矩形(1,1 u,v)中的所有点减去矩形(1,1 u,y-1)和矩形(1,1 x-1,v)的点,再加上(1,1 x-1,y-1)里的点 x是时间变量,天然有序。 阅读全文
posted @ 2018-05-16 15:32 lnyzo 阅读(193) 评论(0) 推荐(0)
摘要:splay 120ms sbt(抄板子的)216ms 阅读全文
posted @ 2018-05-16 11:39 lnyzo 阅读(147) 评论(0) 推荐(0)
摘要:中国剩余定理(孙子定理)模板 在《初等数论》上有详细的解析 这是关于模数两两互质的情况 阅读全文
posted @ 2018-05-15 11:38 lnyzo 阅读(117) 评论(0) 推荐(0)
摘要:这是极大极小值算法原理,不断递归 alpha_bata算法是对其的一个优化 当当前这轮选的是答案尽量大的值时(pro_max),到(pro_min)里搜索时,去的是尽量小的值,若当前能取到比在pro_max平行的前几轮里更小的,则pro_max里即可避免掉这种方案,取前几种方案pro_min同理 阅读全文
posted @ 2018-05-11 20:56 lnyzo 阅读(109) 评论(0) 推荐(0)
摘要:分别按照x,y排序 阅读全文
posted @ 2018-05-11 12:26 lnyzo 阅读(111) 评论(0) 推荐(0)
摘要:f[now][0]表示以当前点为根,且要取该点,满足条件的最小 f[now][1]表示以当前点为根,至少取它的一个儿子,满足条件的最小值 f[now][2]表示他的儿子均被覆盖,满足条件的最小值f[now][0]=val[now]+segma(min(f[son][0~2]));f[now][1]= 阅读全文
posted @ 2018-05-10 20:46 lnyzo 阅读(117) 评论(0) 推荐(0)
摘要:树形DP#include #include #include #include using namespace std; int indg[152],n,p,cnt,f[152][152],head[152],nex[302],to[302]; void inline read(int &x){ char ch=getchar();x=0; while(!isdigit(ch)... 阅读全文
posted @ 2018-05-09 20:36 lnyzo 阅读(219) 评论(0) 推荐(0)
摘要:树链剖分裸题 唯一一个要注意的地方就是数据范围吧。计算时不写(long long)是会爆掉的 阅读全文
posted @ 2018-05-09 14:52 lnyzo 阅读(122) 评论(0) 推荐(0)
摘要:学长的题解:显然,暴力求解的复杂度是无法承受的。考虑这样的一种暴力,我们把 z 到根上的点全部打标记,对于 l 到 r 之间的点,向上搜索到第一个有标记的点求出它的深度统计答案。观察到,深度其实就是上面有几个已标记了的点(包括自身)。所以,我们不妨把 z 到根的路径上的点全部 +1,对于 l 到 r 阅读全文
posted @ 2018-05-08 20:58 lnyzo 阅读(129) 评论(0) 推荐(0)
摘要:给白色边都加上一个值,做kruskal会使得选取的白边数量减少,二分它 阅读全文
posted @ 2018-05-07 18:21 lnyzo 阅读(153) 评论(0) 推荐(0)
摘要:数列分块1 数列分块2 数列分块3 阅读全文
posted @ 2018-05-06 16:05 lnyzo 阅读(231) 评论(0) 推荐(0)
摘要:割点的求解与tarjan缩点类似 哪些点可能成为割点?1.有>=两棵子树的根2.儿子能回到的dfn[ ]最小的点仍大于当前点 那么算法出来了dfn[ ]表示其dfs序,low[ ]表示该点能到的dfn[ ]的最小值 ps:为什么不用考虑儿子节点存在>=两个孙子的情况呢?因为在考虑父节点的时候,若其不 阅读全文
posted @ 2018-05-04 23:12 lnyzo 阅读(175) 评论(0) 推荐(0)
摘要:启发式合并,在合并时将siz较小的合并到siz较大的后面 题意: 有两个操作 1、将所有的x改成y 2、求序列的颜色段 如1 2 2 1 ans=2(m<=1000000) 首先,可以求出初始序列的ans,然后每次修改颜色相当于合并两个颜色,启发式合并。 启发式合并就是将sz小(s1)的暴力加入sz 阅读全文
posted @ 2018-05-03 21:31 lnyzo 阅读(102) 评论(0) 推荐(0)
摘要:注意要建反图,走逆向拓扑序 若正向无法保证在当前最有的情况下,是否全局最有,而反向则满足 阅读全文
posted @ 2018-05-02 16:51 lnyzo 阅读(113) 评论(0) 推荐(0)
摘要:状压DP 先判断可行的放法,在递推 阅读全文
posted @ 2018-05-02 16:03 lnyzo 阅读(127) 评论(0) 推荐(0)
摘要:思路是先对每个(k-1)长度的子字符串之间建边,然后拓扑,若有环则最终仍有indg[i]为 0的 这题用字符串哈希的话会超时 以下是30分做法 满分用map 阅读全文
posted @ 2018-05-01 21:00 lnyzo 阅读(294) 评论(0) 推荐(0)