首页 > 消耗战
头像 DeNeRATe
发表于 2020-09-25 15:59:56
前言 写这篇题解主要是复习一下可能会写的比较省略 算法 虚树+倍增+动态规划 引入 看到这道题我们立马可以想到一个DP方程我们设DP[i]表示使与其子树中的所有关键点分开的最小代价对于一个节点以及他的儿子 若是关键点,那么DP[u]+=W(u,v) 若不是关键点,那么DP[u]+=min{DP[v 展开全文
头像 BNDSBilly
发表于 2020-12-14 16:14:15
对于每次询问,我们建一棵“虚树”这棵虚树只包括询问点以及相应的lca这样在虚树上dp复杂度为总复杂度为 代码如下: #include <bits/stdc++.h> typedef long long ll; const int N = 250010; using namespace s 展开全文
头像 sunsetcolors
发表于 2020-12-08 15:29:31
消耗战 题目地址: https://ac.nowcoder.com/acm/problem/212521 基本思路: 先补充一下数据范围: ,, 我们发现如果没有次的查询单单是询问一次,那么设为切断这颗子树下所有点的最小代价,为到号点的路径中最小的边权,我们可以很容易的得到一个树形的转移方 展开全文
头像 回归梦想
发表于 2021-01-21 13:08:07
[SDOI2011]消耗战 题意: 给出n个点的一棵带有边权的树,以及q个询问.每次询问给出k个点,询问这使得这k个点与1点不连通所需切断的边的边权和最小是多少. 题解: 树型dp+虚树dp[x]:切断x及其子树上询问点的最小代价预处理出minv[pos]代表从11到pos路径上最小的边权如果pos 展开全文

等你来战

查看全部