摘要:
题目链接:https://www.luogu.com.cn/problem/P4427 题意: 给定一颗树,m次询问,每次询问u-v之间每个节点的k次方之和 思路: 树上前缀和:res=ans[u][k]+ans[v][k]-ans[lca(u,v)][k]-ans[fa[lca(u,v)][0]] 阅读全文
posted @ 2025-03-15 18:14
Marinaco
阅读(19)
评论(0)
推荐(0)
摘要:
int dep[maxn];//存u的深度 int fa[maxn][50];//存从u向上跳pow(2,i)的祖先节点 //流程:1.dfs创建st表 //2.利用st表求LCA vector<int>e[maxn]; void dfs(int u,int father){ dep[u]=dep[ 阅读全文
posted @ 2025-03-15 17:16
Marinaco
阅读(34)
评论(0)
推荐(0)
摘要:
时间复杂度O(mlogn*logn) 用于解决u-v最短路径权值问题 解决u子树点权值和问题 可以将两点之间深度较深的那一个点的权值映射到这条边的权值 从而通过维护点权值间接维护边权值 每次只需要lca那一点的权值不动即可 int w[maxn]; vector<int>e[maxn]; int f 阅读全文
posted @ 2025-03-15 10:31
Marinaco
阅读(28)
评论(0)
推荐(0)

浙公网安备 33010602011771号