随笔分类 - 树
摘要:题意 给定一棵 \(n\) 个点的树,以 \(1\) 为根。开始时,每个节点都有一个硬币,两个人轮流执行以下以下操作: 如果当前节点有硬币,取走硬币,该人的操作结束; 如果当前节点没有硬币,选择该节点一个有硬币的儿子节点,结束本次操作,否则,回到其父亲节点; 求出先手最多可以得到多少个硬币。(\(2
阅读全文
摘要:题意 一个有 \(n\) 个节点的树,设它的节点分别为 \(v_1,v_2,\dots,v_n\),已知第 \(i\) 个节点 \(v_i\) 的度数为 \(d_i\),问满足这样的条件的不同的树有多少棵。 $1\leq n \leq 150$ 分析 根据 \(\text{prufer}\) 序列的
阅读全文
摘要:题意 定义一棵无根树 \(T\) 的价值为:\(\sum_{u\in V(T)}{(d(u))^2}\),其中 \(V(T)\) 是 \(T\) 的所有点组成的点集,\(d(u)\) 是点 \(u\) 的度。定义森林的价值为所有由它生成的树的价值之和。现在,让你求出由 \(N\) 个编号的点组成的所
阅读全文
摘要:题意 给出一棵 \(n\) 个点的树,每个点 \(x\) 有一个 \(f(x)\) 值,初始全为 $0$。现在有三种操作共 \(m\) 次: 输入:\(x,w\),选择一个点 \(x\) ,对于树上的所有点 \(y\),\(f(y)\) 将增加 \(w-dist(x,y)\)。其中,\(dist(x
阅读全文
摘要:题意 给定一棵 \(n\) 个节点的树,点编号为 $1...n$。\(Q\) 次询问,每次询问给定一个点集 \(S\),令 \(f(u)=\max\limits_{v\in S}dist(u,v)\) ,你需要求出$\min\limits_f(u)$。其中 \(dist(u,v)\) 表示树上路径
阅读全文
摘要:题意 题目链接:https://ac.nowcoder.com/acm/contest/6885/F 分析 代码 #include <bits/stdc++.h> #define pb push_back using namespace std; typedef long long ll; type
阅读全文
摘要:题意 给一棵树,初始 \(hp=0\) 经过一条边会掉血 \(w_i\),第一次到达一个点可以回血 \(a_i\) 在一个点休息 $1\ s$可以回复 $1\ hp$ ,除此之外其他操作不消耗时间,血不能小于 $0$。每条边最多经过两次,求从起点经过所有点再回到起点到最小时间。 题目链接:https
阅读全文
摘要:题意: 现在给一棵以点 $1$ 为根节点的树,对于当前节点,每一个子节点都有等概率访问,现在访问子节点个数次,问从根节点开始至少能到达一次最深的节点的概率是多少(概率还要求逆元)。 题目链接:https://nanti.jisuanke.com/t/41392 分析: 概率题,先分析状态。首先,当一
阅读全文
摘要:题意: 给定有 \(n\) 层的树,按规律生成的该树,在其中寻找爪子,若找到的爪子里的节点若全是绿色,将其染成黄色,统计染成黄色的节点数量。 分析: 找规律: 如图(来源于:https://blog.csdn.net/mrcrack/article/details/106938912 ) 所以: \
阅读全文
摘要:题意: 给出一棵 $n$个节点的树,每个节点有三个值:\(a[i],b[i],c[i]\),分别为该点的花费,该点的当前状态,该点的目标状态。 每次可以选择点 \(u\) 的子树中的 \(k\) 个点,将它们的当前状态进行重新排序,使之达到目标状态,花费为 \(k*a[u]\)。求出最小的花费,使得
阅读全文
摘要:题意: 给出一棵点权树,一个树的大小定义为所有点的权值和。问将一棵树分为 $k$ 棵子树,如何分割才能使所有树的大小的最大值最小? "传送门" 分析: 最大值最小化问题,考虑用二分求解,枚举答案。 问题转化为如何分割树来判断当前答案是否满足要求。如果一个子树 $v$ 的权重大于 $mid$,则先选择
阅读全文
摘要:题意: 从一颗 $n$ 个节点的树上,选择 $k$ 个点,要求从这些点到根节点 $1$ 的路径上经过的非选中的点的个数的总和最大。 数据范围:$2≤n≤2⋅10^5, 1≤k define pb push_back using namespace std; typedef long long ll;
阅读全文
摘要:题意: "传送门" 分析: 无根树变有根树。 设置数组:$num[v][i]$,其中 $0\leq i \leq 2$。 表示:点 $v$ 对距离点 $v$ 距离为 $i$ 的孩子节点产生的受损数。 代码:
阅读全文
摘要:题意: 树上每个点都有一个小写字符,每次询问以点 $v$ 为根的子树中深度为 $h$ 的点的字符是否可以组成一个回文串。 数据范围:$1 ≤ n, m ≤ 500,000$ 解法 $1\ (dsu\ on\ tree)$: 不带修改的树上查询问题,转化为树上启发式合并的离线做法。每个字符赋予一个二进
阅读全文
摘要:题意: 给出一棵 $n$ 个点的树,每条边上有一个字母($a\to v$,共 $22$ 个),对于每一个子树,询问其中最长的,满足:路径上的字符集可以重组成回文字符串的路径的长度。 数据范围:$1 ≤ n ≤ 5·10^5$ 分析: $dsu\;on\;tree$ 可用于解决不带修改的树上问题。 其
阅读全文
摘要:题意: 给出一棵 $n$ 个点的树,$m$ 次询问,每次询问给出 $k$ 个点,问这 $k$ 个点能否在其中某个点到根节点 $1$ 的路径上或者与路径的距离为 $1$。 数据范围:$2≤n≤2⋅10^{5}$ , $1≤m≤2⋅10^{5}$ , $1≤k_i≤n$ , $\sum_{i=1}^{m
阅读全文
摘要:"题目链接" 分析: 如果每次删除非根的叶子结点,最多$\lfloor \frac{n}{2} \rfloor$ 次就能找到 $root$。 + 最坏极端情况:满二叉树,每次删除底层的最右边两个叶子结点; + 最快极端情况:线性树,一次得到 $root$,且后面不再改变; 代码:
阅读全文

浙公网安备 33010602011771号