随笔分类 - 数据结构--树链剖分
摘要:题:https://ac.nowcoder.com/acm/contest/4370/F 题意:维护x3 支持区间加,区间覆盖,区间乘 分析: 码量题,其中区间覆盖可换成区间乘0+区间加w, lazy乘(设为y)对lazy加(设为w)有这样的影响:(x+w)*y,所以处理lazy乘时要对lazy加
阅读全文
摘要:题:https://codeforces.com/contest/1437/problem/G 题意:首先给定n个模式串,每个模式串一开始价值为0,支持q个查询: [1, x, val ]:将x位置的模式串价值改为val; [2, s ] :找出在主串s中能匹配的模式串的最大值 分析: 将建立n个模
阅读全文
摘要:题:https://ac.nowcoder.com/acm/contest/7831/H 题意:给定n个点的树,每个节点都有颜色; 询问[Q,y]:求把所有y颜色的节点联通起来用的最少的边数。 更新[U,x,y]:将x节点的颜色改为y; 分析: 对于询问,我们可以假象为有俩个点作为总边,剩余颜色的点
阅读全文
摘要:题:https://ac.nowcoder.com/acm/problem/200191 题意:给定一棵树,操作一:把u变为x,操作二统计u~v的最短路径中的各子路径的节点的异或和的异或和。1<=n,q<=1e5 分析:考虑一个节点要么被异或到,要么不被异或到,只与被路径选中次数的奇偶有关。 假设节
阅读全文
摘要:题:https://ac.nowcoder.com/acm/contest/5672/C 题意:给定树,m个操作:(1)在x点处增加w,树上每个点y的值+=w-dis(x,y)。 (2)将x点处值和0取min (3)查询x点的值 分析:将每个点x 的值展开=w-dep(x)-dep(y)+2*dep
阅读全文
摘要:题:https://ac.nowcoder.com/acm/contest/4010/F 题意:给定一个树,有俩种操作,第一种节点v增加x个蘑菇;第二种根节点变为v。问每次操作完后,树上所有蘑菇走到根节点的代价。(每个蘑菇的代价为蘑菇与根节点连边最近的一条)。 分析:对于每个操作后的根节点,我们可以
阅读全文
摘要:题:https://ac.nowcoder.com/acm/contest/5555/E 分析:树上路径,带修改,考虑树链剖分,对于操作1,把u的值改为x,影响的权值只是,u的父亲以及他孩子之间的边,那么我们就把重链的部分修改,其他的边不修改,即对u--son[u]和u--fa[u]的边的gcd修改
阅读全文
摘要:这是对点权计算的板子 #include<bits/stdc++.h> using namespace std; #define lson root<<1,l,midd #define rson root<<1|1,midd+1,r #define pb push_back typedef long
阅读全文
摘要:1 const int N = 1e5 + 5; 2 vector<int> g[N]; 3 int fa[N], dp[N], sz[N], son[N], top[N], dfn[N], to[N], cnt = 0, n; 4 void dfs1(int u, int o) { 5 fa[u]
阅读全文
摘要:题:https://nanti.jisuanke.com/t/38229 题意:给定n个点m个询问。每个询问[x,,y,w]问x到y的路径上边权小于等于w的边数 离线处理,运用树链剖分让LCA跑快点 关键是把n-1条边,和m条询问边存起来 然后按边权值W进行升序; 这样在计数询问的时候我们从小到大计
阅读全文

浙公网安备 33010602011771号