首页 > TAG信息列表 > P2664

luogu P2664 树上游戏

题面传送门 这种数颜色的东西考虑颜色分开考虑。 如果我们将这些颜色对应的点删去,那么对于每个点对应的联通块大小\(siz\),这个颜色对这个点的贡献就是\(n-siz\) 所以我们需要算的就是每个点的联通块大小。 可以记\(P_i\)为\(i\)的父亲对应的颜色中在\(i\)子树内且与\(i\)间没有其

题解[P2664 树上游戏]

题目链接 题意: 记 \(i\) 到 \(j\) 的路径颜色数为 \(s(i,j)\),对每个 \(i\) 求 \(sum_i=\sum\limits_{j=1}^n s(i,j)\) \(\text{Solution}\) 考虑在点分治时 \(\text{dp}\) 设当前分治重心为 \(x\) , 正在处理子树 \(y\) 中全部点此时的贡献。 对每个颜色考虑 \(x\) 子树内出除 \(y

P2664 树上游戏

传送门:https://www.luogu.com.cn/problem/P2664 看到有关两点间求贡献的题,首先想点分治 解决这道题,需要找到一个性质: 对于树上的一点i,若i的颜色是在该点到根这条链上第一次出现,那么他就可以对所有与它lca为根的点提供size[i]的贡献 画画图,发现性质非常正确,然后点分治处理下就可以

P2664 树上游戏

给定一棵大小为 \(n\) 的树,每个结点都有颜色。 定义 \(s(i, j)\) 为从 \(i\) 到 \(j\) 的不同颜色数量以及 \(sum_i = \sum\limits_{j= 1}^ns(i,j)\)。 求出所有的 \(sum_i\)。 较为复杂的点分治题。 也可以用差分 \(O(n)\) 解决。 #include <cstdio> #include <algorithm> inl

【Luogu P2664】树上游戏

Problem Description \(lrb\) 有一棵树,树的每个节点有个颜色。给一个长度为 \(n\) 的颜色序列,定义 \(s(i,j)\) 为 \(i\) 到 \(j\) 的颜色数量。以及 \[ sum[i]=\sum_{j=1}^n s(i,j) \] 现在他想让你求出所有的 \(sum[i]\) Input Format 第一行为一个整数 \(n\) ,表示树节点的数量 第

Luogu P2664 树上游戏 dfs+树上统计

题目:   P2664 树上游戏   分析:   本来是练习点分治的时候看到了这道题。无意中发现题解中有一种方法可以O(N)解决这道题,就去膜拜了一下。   这个方法是,假如对于某一种颜色,将所有这种颜色的点全部删去,原树会被割成若干棵小树,那么这个颜色对每个点的贡献就是:树的大小n - 所在