摘要: 先说一下dsu算法。 例题:子树众数问题。 给出一棵树,每个点有点权,求每个子树中出现次数最多的数的出现次数。 树的节点数为n,$n \leq 500000$ 这个数据范围,$O(n \sqrt n)$直接莫队会超时。 考虑一种暴力做法: 开一个全局数组,记录每中数的出现次数。 依次对每个点,用df 阅读全文
posted @ 2019-07-25 21:11 lnzwz 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 【题目背景】 Po 姐姐很爱他的妹子,可是 Po 姐姐并没有妹子。于是 Po 姐姐决定去找妹子。 【题目描述】 A 国有 n 个城镇,由 n 1 条道路连接,构成了一个树形结构。每条道路的长度都是一样 的。 Po 姐姐最近得到了一个信息:在 A 国的某些城镇,可能出现质量上乘的妹子。 为了捕获这些妹 阅读全文
posted @ 2019-07-25 21:01 lnzwz 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 求包含1号点的最小环。 这个最小环一定是从1点的出边指向的点出发,再回到另一个1点的出边指向的点。 这等价于1号点所有出边指向的点中,两两之间最短路+1号点到这两个点的距离的最小值。 使用二进制拆分,分成两组点,分别向s,t连边,正反算两次最短路。 时间复杂度 $O((n+m)log^2 n)$ 二 阅读全文
posted @ 2019-07-25 20:35 lnzwz 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题意:有k个障碍,求(0,0)到(n,m)不经过这些障碍的方案数。 直接DP会超时。可以发现,(0,0)到(n,m)不经过障碍的路径条数 为总路径条数 经过障碍的路径条数,即C(n+m,n) 经过障碍的路径条数。 设dp(i)表示从(0,0)到第i个障碍,不经过其它障碍的路径条数。 转移时计算经过障 阅读全文
posted @ 2019-07-25 20:32 lnzwz 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 主要思路为连反向边。 对于本题,贪心策略,依次决定每个人的最优解 但因为每人达到的最优解可能有多种方式,如果每个都尝试就会超时,所以只能先采取其中一种 并将这个方案连反向边,其它方案连正向边 这样对于之后的人决策,可以看哪些导师能够走到汇点 就是反向建图后,从汇点BFS判断能到达哪些导师,再判断哪个 阅读全文
posted @ 2019-07-25 20:30 lnzwz 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 使用线段树。 对于取走序列中的一个数并放到尾部这样的操作,我们可以使用数组和线段树解决,方法如下: 例:1 7 3 5 7 3 取走5,放到尾部。1 7 3 5 7 3 1 7 3 __ 7 3 5 (下划线表示空) 但这样查询第K个数时不能直接访问数组中的第K个元素(因为有空格),而扫一遍的复杂度 阅读全文
posted @ 2019-07-25 20:27 lnzwz 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 求 (d表示约数个数) 第一个sigma不能优化,需要优化第二个sigma(指数的那个)。 只有完全平方数的约数个数才是奇数,所以指数就相当于i×1,i×2……i×m中完全平方数的个数。 完全平方数中质因数分解后,所有指数都为偶数,所以对于每个i通过质因数分解可以得出至少乘多少才能成为一个完全平方数 阅读全文
posted @ 2019-07-25 20:25 lnzwz 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 妖怪等级考试: 给定一个无向连通图,求是否存在两个点之间存在三条路径, 并要求输出路径。 首先,如果两个节点之间存在多条不相交路径,就一定存在一个环。 所以,这题和找环相关。 只有两个环之间存在相交的边,才说明有解。 如图: 现在关键就是如何找到环。 由于无向图dfs后,只有树边和返祖边,且只有返祖 阅读全文
posted @ 2019-07-25 20:20 lnzwz 阅读(181) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 首先,把每条路径拆成如下两条路径。 1. 从起点到LCA的路径。 2. 从LCA到终点的路径。 对这两条路径分别处理。 首先,处理从起点到LCA的路径。 为了方便,我们把这条路径拆成两条,进行差分: 用从起点到根的路径,减去从LCA到根的路径,得出这条路径的贡献。 现在我们要处理如下路 阅读全文
posted @ 2019-07-25 20:18 lnzwz 阅读(168) 评论(0) 推荐(0) 编辑
摘要: OVOO题解: 求包含根节点的第k小连通块的权值,连通块的权值定义为连通块中包含的所有边的权值之和。 使用A 算法(估价函数为0),维护一个优先队列,优先队列中储存连通块的权值,上一次选的边权和当前连通块周围的可选边集合构成的可并堆,每种状态有如下两种扩展方式: (1)删除上一次选的边,并选一条当前 阅读全文
posted @ 2019-07-25 20:15 lnzwz 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 之前的似乎有误,重写了 无向图欧拉回路,圈套圈模板,复杂度线性 其实就是DFS整个图,并在回溯时记录。 需要保证存在欧拉回路 void dfs(int u) { for(int &i=fr[u];i!=-1;i=ne[i]) { if(bk[i/2]) continue; bk[i/2]=true; 阅读全文
posted @ 2019-07-25 20:15 lnzwz 阅读(216) 评论(0) 推荐(0) 编辑
摘要: [toc] 点分治 点分治就是基于点的分治。 方法如下:dfs遍历整棵树,在遍历到点u时,考虑LCA为u的点对组成的路径,方法如下: 依次考虑u的所有子节点v,对这些v的子树进行遍历,并考虑每个点与之前遍历的点组成的路径。 这种方法的时间复杂度为$O(子树大小之和)$。 但这样对一些极限数据会超时( 阅读全文
posted @ 2019-07-25 20:13 lnzwz 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1. 线性基: 定义:一个集合的线性基是与原集合能异或出的集合完全相同的最小集合。 求法:主要应用了如下性质:若x是线性基中的元素,y是待添加的元素,那么x^y也在线性基中。 证明:设z=$x$ ^ $y$,那么只要用到了z,就相当于用了$x$ ^ $y$,若要用y,就可以使用$z$ ^ $x$ 所 阅读全文
posted @ 2019-07-25 19:50 lnzwz 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 二分图 定义 二分图定义: 如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集,则称图G为一个二分图。 就是说,能把节点划分为两个部分,使得同一部分里没有边的图。 或者,没有长度为奇数的环的图也是二分图。 判定 使用黑白染色,若 阅读全文
posted @ 2019-07-25 19:49 lnzwz 阅读(264) 评论(0) 推荐(0) 编辑
摘要: [toc] 后缀数组是一种处理字符串的算法。 它可以将所有后缀按字典序排序,并求出任意2个后缀的最长公共前缀。 首先将所有后缀排序,因为后缀有这样的性质:任意一个后缀都可以拆分成另一个后缀和一个子串,且一个子串也可以拆分成其他子串,所以可以采用倍增算法对所有后缀进行排序,方法如下:(分若干步) 第k 阅读全文
posted @ 2019-07-25 19:36 lnzwz 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 考虑如下$dp$: $dp(i)=max/min(A(i)+B(j)+C(i)D(j))$ $(j define ll long long ll dp[1000010]; int sz[1000010],S[1000010]; ll X[1000010],Y[1000010],he=0,ta=0; 阅读全文
posted @ 2019-07-25 18:49 lnzwz 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 对于状态转移有环的动态规划,使用如下方式求解: 1. 若转移里没有max/min,只有加减乘除运算,可以建立方程组,通过高斯消元在$O(n^3)$得出解。 2. 若转移只是对一些元素取max/min(或第k大/小值),再加/减一个值,可以建图,使用dij或spfa求解。 3. 若u依赖v,且若v能更 阅读全文
posted @ 2019-07-25 18:46 lnzwz 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 概念 后缀自动机,是一个能识别一个字符串的所有后缀的自动机。 考虑一种最简单的实现: 将一个字符串的所有后缀插入到一棵trie中。 如图: 可以发现后缀树每个点对应一个后缀集合,每个点对应的后缀集合是这个点子树中所有结束节点所表示的后缀的集合。 把每个点对应的后缀集合称为righ(x) 由于一个字符 阅读全文
posted @ 2019-07-25 18:44 lnzwz 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 如图: 数组的常数约为9。 阅读全文
posted @ 2019-07-25 18:38 lnzwz 阅读(254) 评论(0) 推荐(0) 编辑
摘要: [toc] 1、异或问题 处理异或的问题有一种常用技巧:就是把每个二进制位拆开单独处理,这样只有不同的才会有贡献。 这样就将异或问题转换为了是否为不同的数。 例:魔卡少女 给定一个序列,可以修改一个数或查询某一个区间内所有连续子串的异或和的和。 首先,求出前缀和,将问题转变为区间内任取两个数的异或和 阅读全文
posted @ 2019-07-25 18:32 lnzwz 阅读(200) 评论(0) 推荐(0) 编辑