ICode9

精准搜索请尝试: 精确搜索
  • 树链剖分学习笔记2019-08-16 12:04:28

    简介 树链剖分,顾名思义,就是把树剖分成链,在链上进行一系列的操作。 下面我们就来学习一下这个算法。 概念 树链剖分引入了很多新的概念: 重儿子:一个节点所有的儿子中子树\(size\)最大的儿子。 轻儿子:一个节点的儿子中除了重儿子都是轻儿子。 重边:一个节点与它的重儿子所组成的边。

  • 树链剖分详解2019-08-15 17:03:31

    树链剖分,顾名思义,就是对树剖分成链,然后用数据结构进行维护,以此降低维护的复杂度。 必备知识点 邻接表存图 LCA 线段树 相关定义 重儿子:一个节点所有子节点中以其为根的子树的节点最多的节点 重边:一个节点到其重儿子的边 重链:一条全部由重边构成的路径(特别地,一个节

  • 最近目标23332019-08-10 22:54:44

    最近目标 并查集: P2024 [NOI2001]食物链 P1525 关押罪犯 (二分+二分图)(并查集代表监狱)(并查集代表犯人之间的关系)   动态规划dp: P2016 战略游戏 P1352 没有上司的舞会  P1273 有线电视网 P3354 [IOI2005]Riv 河流 P3140 [USACO16FEB]再探圆形谷仓Circular Barn R… P3112 [USACO14D

  • BZOJ: 3531: [Sdoi2014]旅行 (树链剖分+动态线段树)2019-08-10 20:42:40

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3531 解题心得: 关于树剖的部分很容易想到,树上的简单路径维护值的问题肯定是要树链剖分了,但是线段树怎么维护就很讲究了,因为有不同的阵营,如果维护每个阵营就需要建立n颗线段树,如果静态建立线段树肯定会MLE,这里就

  • [树链剖分][树状数组] Luogu P3676 小清新数据结构题2019-08-09 20:04:23

    题目描述 在很久很久以前,有一棵n个点的树,每个点有一个点权。 现在有q次操作,每次操作是修改一个点的点权或指定一个点,询问以这个点为根时每棵子树点权和的平方和。 (题目不是很好懂,没看太懂的可以看看样例解释)   题解 大爷博客(戳我)   代码 1 #include <cstdio> 2 #include <

  • P4315 月下“毛景树” (树链剖分+边剖分+区间覆盖+区间加+区间最大值)2019-08-05 11:01:16

    题目链接:https://www.luogu.org/problem/P4315 题目大意: 有N个节点和N-1条树枝,但节点上是没有毛毛果的,毛毛果都是长在树枝上的。但是这棵“毛景树”有着神奇的魔力,他能改变树枝上毛毛果的个数:Change k w:将第k条树枝上毛毛果的个数改变为w个。Cover u v w:将节点u与节点v之间的树枝上

  • P3833 [SHOI2012]魔法树 (树链剖分模板题)2019-08-04 17:02:21

    题目链接:https://www.luogu.org/problem/P3833 题目大意:有一颗含有n个节点的树,初始时每个节点的值为0,有以下两种操作: 1.Add u v d表示将点u和v之间的路径上的所有节点的值都加上d。 2.Query u表示当前果树中,以点u为根的子树中,总共有多少个果子?   解题思路:树链剖分板子,具体看代码注

  • POJ - 2763 Housewife Wind 【树链剖分+边权】2019-08-04 10:42:55

    After their royal wedding, Jiajia and Wind hid away in XX Village, to enjoy their ordinary happy life. People in XX Village lived in beautiful huts. There are some pairs of huts connected by bidirectional roads. We say that huts in the same pair directl

  • 计蒜客 39272.Tree-树链剖分(点权)+带修改区间异或和 (The 2019 ACM-ICPC China Shannxi Provincial Programming ContestE.)2019-08-01 17:00:07

    Tree   Ming and Hong are playing a simple game called nim game. They have nn piles of stones numbered 11 to nn ,the ii-th pile of stones has a_iai​ stones. There are n - 1n−1 bidirectional roads in total. For any two piles, there is a unique pat

  • 洛谷 P3258 松鼠的新家 题解2019-07-31 21:00:39

    题面 貌似这道题暴力加玄学优化就可以AC?   下面是正解:   1.树链剖分:    我们在u到v之间都放一个糖果,可以将松鼠它家u到v的糖果数都加1。每一次将a[i]到a[i+1] (a数组是访问顺序)的节点加1,可以用树链剖分来维护。查询只需要查每个点的权值就可以了。(貌似该题比树剖板子还板子?)

  • POJ - 3237 树链剖分2019-07-30 17:02:57

    You are given a tree with N nodes. The tree’s nodes are numbered 1 through N and its edges are numbered 1 through N − 1. Each edge is associated with a weight. Then you are to execute a series of instructions on the tree. The instructions can be on

  • BZOJ p1036 树的统计(树链剖分)2019-07-28 22:53:37

    树链剖分 对于一棵树上两个节点所构成的链的操作,我们可以用树链剖分,来将树转化为多条链的集合(线性结构),从而将树上链的结构转化为线性结构的区间操作. 找出每个节点的重儿子(包含节点最多的儿子) 重儿子优先输出dfs序 对于如下一棵树进行剖分 找出其重儿子(红色线) 每个节

  • [模板]树链剖分2019-07-27 20:53:15

    #include<bits/stdc++.h> #define lson(x) (x << 1) #define rson(x) (x << 1 | 1) using namespace std; const int N = 100010,M = 200010; int n,m,r,p; long long a[N]; int d[N],son[N],fa[N],siz[N],top[N],rk[N],id[N],cnt;//树链剖分 int head[N],edg

  • Luogu2420 让我们异或吧 (熟练剖分)2019-07-27 19:00:56

    \(dis[u] \bigoplus dis[v] = dis[u] \bigoplus dis[v] \bigoplus dis[lca\{x,y\}] \bigoplus dis[lca\{x,y\}]\) #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define R(a,b,

  • 月下“毛景树” 树链剖分模板题(洛谷P4315)2019-07-25 22:04:27

    树链剖分维护的都是点,而这道题要求的是边。 解决:就把边权下放,变成点权,注意下放后查询u到v的路径时要除去lca的点权,因为lca的点权是其父亲的边权 细节:线段树的加标记与等于标记的维护与下传 #include<bits/stdc++.h>using namespace std;#define N 100005#define mid ((l+r)>>1)in

  • [SDOI2014]旅行(D12 树链剖分+动态开点)2019-07-25 21:01:49

    题目描述 给一棵树,每个节点有一种颜色和权值,有四种操作:将一个节点颜色改变,讲一个节点权值改变,求一上路径上某种颜色的的点的权值和,求一条路径上某种颜色的点的最大权值   N,Q < =105 , C < =105   数据保证对所有QS和QM事件,起点和终点城市的信仰相同;在任意时刻,城市的评级总是不大于

  • 树链剖分(轻重链剖分)算法笔记2019-07-23 23:01:18

    原文链接 导言 你会DFS序吗? 我想,你肯定会说会.不会,欢迎点击搜索和DFS序学习 你会线段树吗?不会,欢迎点击暂无 我想,身为巨佬的你肯定会. 既然巨佬你会DFS序,会线段树.那么接下来的树链剖分,你也一定会. 接下来的学习,您必备的算法知识有,DFS序,线段树. 您可以选修的知识点有树上

  • P3384 【模板】树链剖分2019-07-23 14:43:47

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int MAXN=2*1e6+10; #define ls k<<1 #define rs k<<1|1 inline char nc() { static char buf[MAXN],*p1=buf,*p2=buf; return p1==p2&&(p

  • [模版]树链剖分2019-07-21 19:56:36

    1 #include<bits/stdc++.h> 2 #define lson(x) (x << 1) 3 #define rson(x) (x << 1 | 1) 4 using namespace std; 5 6 const int N = 100010,M = 200010; 7 int n,m,r,p; 8 long long a[N]; 9 int d[N],son[N],fa[N],siz[N],top[N],rk[N],id[N]

  • 西安邀请赛-E(树链剖分+线段树)2019-07-14 10:53:49

    题目链接:https://nanti.jisuanke.com/t/39272 题意:给一棵树,n个结点,树根为1,n-1条边,每个结点有一个权值。进行3种操作:     1 s t:把1和s之间的最短路径上的所有结点|t。     2 s t:把1和s之间的最短路径上的所有结点&t。     3 s t:把1和s之间的最短路径上的所有结点进行异

  • 树链剖分(模板)2019-07-13 18:00:29

    题目链接:https://www.luogu.org/problemnew/show/P3384 题意:树链剖分模板题,但是比较坑的是要注意取模,每个可能炸int的地方都要加取模。 代码如下: #include<cstdio>#include<algorithm>using namespace std;const int maxn=100005;//链式向前星int cnt1,head[maxn],w[maxn],wt[maxn

  • 杭州集训第四天2019-07-10 23:04:10

    今天是本蒟蒻在杭州集训(被虐)的第四天,由于我太弱了,出题人不屑于浪费时间出毒瘤题来坑我;而是从洛谷上 挪了些原题上来;但由于我太弱了,还是没做出来; T1 . 坐等 memset0 树链剖分是个喜欢逛讨论区的女孩子。树链剖分看到有若干个小学生发的帖子,因为一些原因,这些帖子形成了一条链。其中第

  • 树链剖分 模板2019-07-10 10:51:45

      功能:  修改与查询整个子树 修改与查询路径   #include<bits/stdc++.h>using namespace std;//input by bxd#define rep(i,a,b) for(int i=(a);i<=(b);i++)#define repp(i,a,b) for(int i=(a);i>=(b);--i)#define RI(n) scanf("%d",&(n))#define RII(n,m) scanf(&

  • [CTSC2008]网络管理 整体二分+树状数组+树链剖分2019-07-08 15:51:38

    题意: M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门。为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络。该网络的结构由N个路由器和N-1条高速光缆组成。每个部门都有一个专属的路由器,部门局域网内的所有机器都联向这个路

  • [树链剖分][水法] Jzoj P3898 树的连通性2019-07-03 11:37:55

    Description 给定一个n 个点的无向图,保证联通且无环无重边,每个点上有一个可修改的权值,每次断掉一条边、修改某个节点上的权值或询问两个点之间的连通性。   Input 输入数据的第一行是两个数N、M,点的个数和操作的个数接下来N 行,每行一个正整数,表示每个点上的初始权值接下来若干

专注分享技术,共同学习,共同进步。侵权联系[[email protected]]

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

ICode9版权所有