ICode9

精准搜索请尝试: 精确搜索
  • 点分治与点分树 学习笔记2021-01-05 23:34:09

    一、引入 我们看这样的一道题:给定一棵有\(m\)的点的树,询问树上是否存在距离为\(k\)的点对,有\(m\)组询问,\(nm\le 10^6\). 容易想到的做法是暴力,即对于每一个点对都暴力判断,显然,它的时间复杂度不够优秀。 点分治,就是解决像这道题一样需要大规模处理树上路径的问题的一种好方法。 二

  • 树与dfs.树的重心.acwing 8462020-12-29 17:02:44

    code: #include<bits/stdc++.h>//xfl using namespace std; const int N = 2e5+10; int h[N],ne[N],to[N],siz[N]; int n,num,minn=N; void add(int a,int b){ne[++num]=h[a];to[num]=b;h[a]=num;} void dfs(int x,int fa) { siz[x]=1; int maxx=0; for(in

  • CF220B2020-12-13 22:05:02

    Description 给定 \(n\) 个数组成的数列,\(m\) 次询问 对于每次询问求出在给定的 \(L\) 到 \(R\) 的范围内有多少个数字的出现频率等于其本身 Solution 莫队 根据数据范围 \(1\le n,m \le 1e5\),\(a_i\le 1e9\) 可知 当序列中某个数大于 \(1e5\) 时,他的出现频率不可能等于其大小,对答

  • Luogu1196 银河英雄传说 + Python函数的定义与调用(C++/Python 双语言实现)2020-12-13 18:01:24

    原题链接:https://www.luogu.com.cn/problem/P1196 银河英雄传说 题目背景 公元 5801 5801 5801 年,地球居民迁至金牛座 α

  • 『Mivik的萌新赛 & Chino的比赛 2020』T2 题解 Galgame2020-12-03 21:03:38

    如果这是我最后一篇题解,请每年为我上坟。 Galgame 题目传送门 Decription as_lky 搞到了很多 Galgame(真的很多!)。一款 Galgame 可以被描述为很多场景(Scene)的结合,它们形成了一棵 以 1 为根 的二叉树,每一个结点都是一个场景,一个结点的左儿子和右儿子分别对应在该场景选 A 选项和 B 选

  • P1446-[HNOI2008]Cards【Burnside引理,dp】2020-11-29 21:01:35

    正题 题目链接:https://www.luogu.com.cn/problem/P1446 题目大意 三个颜色的一些东西排在一起,给 m m m种置换,求本质不同的染色方案数。 解题思路 B

  • 完全二叉树的后序遍历输出层次遍历(递归建树/dfs模拟/打表)2020-11-29 15:01:10

    思路:有个很关键的条件就是树的大小能定下来,而且是按照一个个顺序放的。 回想由中序遍历和后序遍历确定二叉树,我们每次都找下一个更小的左右子树范围的区间进行递归。 那么这个思路延续。根据完全二叉树来先递归建立好空树,在建立过程中push_up每个节点子树的siz. 然后在输入的数

  • [USACO18JAN]MooTube2020-11-28 09:00:31

    [USACO18JAN]MooTube 首先我们先理解并转化模型。 这道题问的是:一棵树,\(n\)个点上给边权,定义两个点的相关性为简单路径上最小边权。给一些询问,让你回答所有点与\(v\)的相关性不小于给的\(k\)的有多少个? 这道题一看到最小边权,我会想到LCA,通过DP求解出每个点到\(k\)级祖先的路径上

  • CF1446C Xor Tree2020-11-16 19:34:46

    对于每个点\(i\),找到\(j\neq i\)且\(a_j \ xor \ a_i\)最小,连边\((i,j)\)。 如果连边之后形成一棵树,那么称\(\{a_i\}\)为合法的。 给出\(\{a_i\}\),求至少删掉多少个点才合法。 \(n\le 2*10^5\) \(a_i\)互不相同 这题搞得可真是惊心动魄……搞了三个做法,最后一个终于对了…… 干了

  • P5829 【模板】失配树2020-11-14 23:01:57

    目录题目思路代码 虽然不知道失配树是什么,看这题是为数不多的KMP练手的"能做的题"之一,就把这道题切了 题目 传送门 个人觉得题目已经非常简洁明了,感动,就不再重复题意 思路 KMP+LCA 先推一道题,对这题应该有帮助:传送门 KMP中,next[i]是由next[1~i-1]得到的,若next[i]由next[j]

  • 堆的基本操作(手写模拟堆)2020-11-07 20:33:33

    地址:https://www.acwing.com/problem/content/841/ 解析: 这个题比较麻烦的一点就是k。第k个插入的数,不是树里的序号。经过一系列变换后,第k个插入的数在树里的序号会发生交换。 所以引入两个数组:ph[i]=x:表示第i次插入的数,在树中的序号为x。hp[i]=x:表示树中的序号i,是第x次插入的

  • 【笔记】主席树学习笔记2020-11-02 20:03:04

    主席树笔记 学习博文:主席树总结 静态区间第 k 小问题 P3834 【模板】可持久化线段树 2(主席树) 题意 给出一个序列,每次询问给定区间内第k小的值。 思路 主席树模板。 考虑最简单的情况,也就是查询区间固定。首先对数据进行离散化,用线段树维护。每个节点对应离散化后值域的数的总个数

  • 联赛模拟测试27_树和森林(lct.cpp)2020-11-01 17:32:02

    上面是pdf题解,下面自己说一下 子任务一: 对于两棵树的比较好求,对于每个联通块,求出每个点到其他点的距离之和 一棵树内部的贡献就是所有的点的\(dis_{sum}\)相加,然后除以2。 树与树之间的贡献:对于上面的每个联通块中的每个点求出的\(dis_{sum}\),取最大值设为,\(max_{dis}[1],ma

  • LOJ3213 「CSP-S 2019」树的重心2020-10-13 21:33:14

    题意 给一棵 \(n\) 个点的树,求断掉每条边后两棵树的重心。输出编号和。\(n \leq 3\times 10 ^ 5\)。 题解 solution by hydd 显然任意情况下两个重心一定是相邻的,我们先求出其中较靠下的那个重心,最后 \(check\) 一下其父亲是不是也是重心就可以了。 结论:任意一个树,以任意点为根,重

  • 题解 [TJOI2013]单词2020-10-06 09:02:12

    题意:给出\(n\)个单词,求每个单词在这\(n\)个单词中出现的次数。 \(fail\) 树:AC自动机中每个\(fail\)指针的反向边作为一条有向边,因为每个点只有\(1\)个\(fail\)指针,所以除了根节点每个点入度为\(1\),所以图是树形的。 那么对于这道题我们可以建出\(fail\)树,设\(siz_i\)表示有多少个

  • CF1408G Clusterization Counting2020-10-01 12:31:36

    题意 给定 \(n\) 个点的带权无向完全图,点 \(i, j\) 之间的权值为 \(a_{i, j}\),权值是一个 \(1 \sim \frac{n(n-1)}{2}\) 的排列。 计数把原图划分成 \(k\) 个组的方案数,满足: 对于任意的 \((s, f), (x, y)\),其中 \(s, f, x\) 同组,\(y\) 与 \(x\) 不同组 (\(s \ne f, x \ne y\)),\(a_

  • CF708C Centroids2020-09-26 21:03:34

    确实不简单。 首先要理解题意。你可以拿掉任意一棵子树,接到一个节点上,但是拿掉的子树的大小并不是1~siz[u]。假设树根为root,我们找到子树中最大的子树,从中拿掉最大的小子树,然后接到根上, 如果这个时候符合题意,那么以root为根就可以通过改造成为树的重心。 问题的关键就是求出以root

  • [BZOJ2152] 聪聪可可 - 点分治2020-09-08 10:00:27

    Description 给定一棵树,树上每条边有权值,两人每次从树上随机选择两个点(可以重复),求两点路径上长为 \(3\) 的倍数的概率。 Solution 每层分治到重心 \(p\) 时计算所有经过 \(p\) 的路径,这里我们先只算不重复的组合,最后乘 \(2\) 再加上两点重合的情况 对重心 \(p\) 和当前枚举的子树

  • 点分治2020-08-26 07:32:51

    点分治 ​ 点分治是用于解决树上路径问题的一中算法,是一种带优化的暴力。 ​ 先来一道题看看点分治是啥: ​ P2634 [国家集训队]聪聪可可 ​ 题目大意:给定一颗带权无根树,问有多少条路径之和为3的倍数。(\(n \le 2e4\)) ​ 首先这道题肯定是可以DP做的,但我们要用点分治做。想一想,这

  • Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree2020-08-22 17:31:18

    Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree 题意 给定一棵\(n\) 个结点的树,对这棵树分配边权,使得这棵树的边权的乘积为\(k\) ,且要求所有两点的简单路径边权之和最大。 \(k\) 以质因子的形式给出,有\(m\) 个质因子 结果取余1e9+7 \[n \leq 10^5 ,m \leq 6\cdot 10

  • Codeforces Round #665 Div. 2 A-D题题解2020-08-22 13:31:18

    A-D题的题解。 比赛链接 A. Distance and Axis 题意: 给定一条数轴\(OX\),只有正半轴,原点是\(0\)。给定点\(A\)的坐标\(n\)和目标\(k\),我们每次可以对点\(A\)执行以下两种操作之一: 使点\(A\)的位置\(+1\); 使点\(A\)的位置\(-1\)。 问如果要使得数轴上存在一个点\(B\),使得点\(B\)

  • 【UER #1】DZY Loves Graph2020-08-15 06:31:34

    题目内容 DZY开始有\(n\)个点,现在他对这\(n\)个点进行了\(m\)次操作,对于第\(i\)个操作(从\(1\)开始编号)有可能的三种情况: Add a b: 表示在\(a\)与\(b\)之间连了一条长度为\(i\)的边(注意,\(i\)是操作编号)。保证\(1≤a,b≤n\)。 Delete k: 表示删除了当前图中边权最大的k条边。保证k一定

  • Luogu4869 albus就是要第一个出场2020-07-29 06:31:23

    Description link 求一个数在一个序列的线性基表示的所有数中的排名 \(n\le 10^5\) Solution 线性基的另外一种应用 和查询一个排名为 \(k\) 的数也不那么类似…… 我们将所有的数都插入到线性基里面 有主元的位置记录来,如果当前的那个和有主元的位置与起来不为 \(0\) ,那就排名加

  • 树链剖分2020-07-24 08:31:28

    #树链剖分 1,将树从x到y结点最短路径上所有节点的值都加上z 这也是个模板题了吧 我们很容易想到,树上差分可以以O(n+m)的优秀复杂度解决这个问题 2,求树从x到y结点最短路径上所有节点的值之和 lca大水题,我们又很容易地想到,dfs O(n)预处理每个节点的dis(即到根节点的最短路径长度) dis(

  • P3469 [POI2008]BLO-Blockade2020-07-14 18:02:12

    P3469 题解 题意 给出一张有\(n\)个点,\(m\)条边的无向连通图,问对于每个节点\(i\),去掉与\(i\)相连的所有边后,有多少对有序点对\((x,y)\)不再连通。 分析 根据割点的定义可知,若\(i\)不为割点,则只有剩下的\(n-1\)对点不与\(i\)联通,答案为\(2(n-1)\)。 若\(i\)为割点,则原图一定被分为

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有