题目描述 有一棵点数为 nnn 的树,树边有边权。给你一个在 $0 \sim n$ 之内的正整数 \(k\) ,你要在这棵树中选择 \(k\) 个点,将其染成黑色,并将其他 的 \(n-k\) 个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的受益。问受益最大值是多 ...
分类:
其他好文 时间:
2020-06-16 23:21:34
阅读次数:
74
题意 给定一棵树,点有黑/白颜色,每个点给定一个$w_i$,若某白点$i$子树超过了$w_i$个黑点,则白点会被标记。$m$次修改点颜色,每次回答有多少被标记的点 做法 对操作分块 对块内修改节点建虚树,则每次修改一个点,影响的是该点至根路径 将虚树上同一条边代表的原树上的节点一起处理 \(O(n\ ...
分类:
其他好文 时间:
2020-05-31 13:19:22
阅读次数:
57
T1 设end(i)代表以$i$为结尾的路径个数 设$f[i][j][k][l]$代表考虑了$i$个点 其中有j/k个点是$end$为奇的白/黑点 暴力就是$O(n^4)$的 发现转移的式子其实只跟j/k是否为0有关 并不关心他的具体值 所以只需要记录是否出现即可 复杂度$O(n)$ T2 容斥 设 ...
分类:
其他好文 时间:
2020-05-02 23:22:00
阅读次数:
98
T1 首先设出暴力的$dp$。 $dp[i][j][k][l]$为前$i$个点中有$j$个白点结束方案为奇数,$k$个黑点结束方案为偶数,当前全部的结束方案之和奇偶性为$l$的方案数。 那么可以很简单的转移。 在考虑转移时候的系数。 其实只跟$j,k$是否为0有关系。 那么状态大大化简为: $dp[ ...
分类:
其他好文 时间:
2020-05-02 20:45:11
阅读次数:
54
给定一棵 $n$ 个点的树,初始全是白点,要求你做 $n$ 步操作,每一次选定一个与一个黑点相隔一条边的白点,将它染成黑点,然后获得该白点被染色前所在的白色联通块大小的权值。第一次操作可以任意选点。求可获得的最大权值。 Solution 显然如果选定了开始点,那么答案就是固定的 设开始点为根,则答案 ...
分类:
其他好文 时间:
2020-04-04 11:47:23
阅读次数:
73
P2774 方格取数问题 一看题目便知是网络流,但由于无法建图.... 题目直说禁止那些条件,这导致我们直接建图做不到,既然如此,我们这是就要逆向思维,他禁止那些边,我们就连那些边. 我们将棋盘染色,一个点向四周连边,我们的目标是使的这些边不起作用,我们将黑点与s联通,白点与t联通. 之后我们就要考 ...
分类:
其他好文 时间:
2020-03-22 10:25:08
阅读次数:
89
题意: 有n个点n-1条边的数,问每个点所在子树中白黑点数目最大差。 思路: 白点先由下至上汇集,后由上至下分并。 #include <bits/stdc++.h> using namespace std; const int M=220000; vector<vector<int>> e(M); ...
分类:
其他好文 时间:
2020-03-13 15:48:43
阅读次数:
69
$$ \texttt{Description} $$ 给定一棵 $n$ 个点的树,每个点有一个颜色( "黑" 或 "白" )。 对于每个点 $x$ ,求出所有包含点 $x$ 的联通子图中,白点数减去黑点数的最大值是多少。 $$ \texttt{Solution} $$ 树形 dp 好题。 首先我们随 ...
分类:
其他好文 时间:
2020-03-13 13:03:27
阅读次数:
53
思路 令黑点点权为 -1 , 白点点权为 1,求最大子树点权和。 设 f[i] 为包含 i 点的最大子树点权值,如果当前点的最大点权和 比 当前点父亲的最大点权和小, 则更新当前点。 比较蠢的做法是,分两种情况讨论下,当前点的点权和 大于 或 小于 0 的情况处理是不同的。 如果当前点子树权值 >= ...
分类:
其他好文 时间:
2020-03-13 01:31:15
阅读次数:
64
题意 给你无根一颗树,每个节点是黑色或白色。对于每一个节点,问包含该节点的权值最大的子树。 子树的权值等于子树中白点的个数减去黑点的个数。 注意,这里的子树指的是树的联通子图。 解题思路 这场就这题卡的比较久。 首先,如果是有根树的话,只需要dfs一遍就能得出根的答案。 设根为1,将无根树转为有根树 ...
分类:
其他好文 时间:
2020-03-13 01:05:27
阅读次数:
45