摘要: (7.15)康托展开,就是把全排列转化为唯一对应自然数的算法。它可以建立1 ~ n的全排列与[1, n!]之间的自然数的双向映射。 1、康托展开: 尽管我并不清楚康托展开的原理何在,这个算法的过程还是比较好记的。正确性之后有机会询问下学长。 如果从1开始给全排列的排名从大到小编号的话(从0开始也可, 阅读全文
posted @ 2019-07-15 12:05 onyYuan 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 浙江集训Day9,没有出任何实质性成果,只好把昨天打完的板子记一下。 该博客基于luogu的三道模版题。只有一个大致的讲解,主要提供代码给自己参考。 (7.14) 一、AC自动机 AC自动机,一个有着令人容易误会的名字的有限状态自动机结构,主要被应用在多模式串的文本匹配问题中。理解AC自动机,首先要 阅读全文
posted @ 2019-07-14 21:41 onyYuan 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 浙江集训Day4,从早8:00懵B到晚21:00,只搞懂了可持久化线段树以及主席树的板子。今天只能记个大概,以后详细完善讲解。 可持久化线段树指的是一种基于线段树的可回溯历史状态的数据结构。我们想要保存某一段序列的历史信息,可以朴素地开m倍的空间存储;而线段树是一种优秀的数据结构,它每次修改操作只把 阅读全文
posted @ 2019-07-09 21:40 onyYuan 阅读(193) 评论(0) 推荐(0) 编辑
摘要: PS:时间限制不必太紧,重要的是深入理解算法思想。 待学知识: 1、图论 优化建边 基环树 负环和差分约束 二分图的性质 费用流、上下界网络流 2-sat问题 2、数据结构 树状数组、线段树的灵活使用 带权并查集 可持久化并查集 带修主席树 Done 线段树合并 线段树分治 平衡树(https:// 阅读全文
posted @ 2019-07-09 10:09 onyYuan 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 这是一篇迟来的博客,由于我懒得写文章,本篇以两个问题阐述笔者对树链剖分的初步理解。 Q1:树链剖分解决什么问题? 树链剖分,就是把一棵树剖分成若干连续的链,将这些链里的数据映射在线性数组上维护。比方说我们想要维护树上任意两点间的lca,或者支持一段路径或一棵子树的修改和查询,都可以用树链剖分来解决。 阅读全文
posted @ 2019-07-07 19:00 onyYuan 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 这个题是很经典的生成树问题。第一次接触时对倍增算法的理解还不够透彻,没能打出来正解。 首先,原题中给出的是一幅图,询问从某点出发到另一点“需要经过的最短边的最大值”。用floyd来解决是可以的,但是数据范围不能承受O(n^3)的复杂度。于是我们考虑:假设原图是连通的,那么我们从某点到另一点,一定至少 阅读全文
posted @ 2019-07-04 15:40 onyYuan 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 树形图的定义:一个有向图,满足从某一点u出发可以遍历全部点,并且图中不存在环(恰有点数-1条边),则称该图为一个树形图,其中u是该图的根。对于一个有向图,如果我们可以在其上生成一个包括原图所有点的树形图T,且满足T的所有边权之和最小,那么T就是原图的一个最小树形图。 从定义上很容易联想到无向图的最小 阅读全文
posted @ 2019-07-02 20:10 onyYuan 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 我们把“u点能够到达的最大点”转化为反向图中能到达u点的所有点里的最大值,可知缩点后满足无后效性。val[i]的初值设为连通分量i中的最大点。反向存图,tarjan缩点,拓扑序dp即可。 至此luogu上真哥留下的缩点习题全部完成。晚上更新对最小树形图(朱刘算法)的理解。 阅读全文
posted @ 2019-07-02 12:43 onyYuan 阅读(116) 评论(0) 推荐(0) 编辑
摘要: tarjan有向图缩点的基础应用。把原图中某点的连通数转化为反向图中”能够到达某点的个数“。缩点后,每个新点的贡献等于 原dcc大小 * f[i] 其中f[i]表示(包括该点自身)通向该点的点的个数。设u点为v的入度,满足转移方程: 所以我们按照拓扑序dp求解即可。f[i]的初值设为该分量的节点数。 阅读全文
posted @ 2019-07-01 08:27 onyYuan 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 开始学tarjan的时候,有关无向图的割点、桥、点双边双缩点都比较容易地理解了,唯独对有向图的缩点操作不甚明了。通过对luoguP2656_采蘑菇一题的解决,大致搞清了tarjan算法的正确性。 首先放出有向图缩点tarjan函数的写法: } while (x != u); 问题主要出在函数的第二部 阅读全文
posted @ 2019-06-30 18:07 onyYuan 阅读(494) 评论(0) 推荐(0) 编辑