数据结构
文章平均质量分 58
半碗无糖蓝莓冻
这个作者很懒,什么都没留下…
展开
-
STDOJ pyf的树(树形dp)
题目 思路 首先我们需要两个数组: cntcntcnt 数组记录每一个节点的子节点个数 dpdpdp 数组在第一个 dfsdfsdfs 中记录的是以 111 为根节点,每个节点对树价值的贡献;在第二个 dfsdfsdfs 中记录的是以 iii 为根节点整个树的价值; 第一个 dfsdfsdfs 没什么可以说的,重点在第二个 dfsdfsdfs ,我们从 111 为根节点开始,用 dp[1]dp[1]dp[1] 去更新与 111 相连的子节点,一直递归下去… dp[j]=dp[j]−cnt[j]+dp[原创 2021-09-10 21:58:15 · 110 阅读 · 0 评论 -
2021牛客暑期多校训练营5 King of Range & 名作之壁 (单调队列 + 尺取法)
链接 名作之壁 题意 给出一个大小为 nnn 的序列,找出 max−min>kmax - min>kmax−min>k 的区间个数; 思路 尺取法:像尺子????一样取一段,通常是对数组取一对下标,即所选区间的左右端点,根据实际情况不断推进左右端点以得出答案。尺取法比暴力枚举区间效率快很多,是一种高效的枚举区间的方法,一般用于求取有一定限制的区间个数或最短的区间; 名作之壁和 King of Range是一样的题只是数据范围不同; 选择一个区间 lll,rrr,找到 maxmaxmax ,原创 2021-07-31 23:52:11 · 117 阅读 · 0 评论 -
Codeforces Round #635 (Div. 2) C. Linova and Kingdom(树形结构 + dfs)
链接 C. Linova and Kingdom 题意 有 n 个城市,n - 1 条路,编号从 1 - n 挑选 k 个城市作为工业城市,其他城市为旅游城市,现在要每个工业城市出一个人,按最短路径走到 1 号城市,途中每经过一个旅游城市幸福感 + 1; 求最大的幸福感; 思路 由题意可知道为树形结构,肯定要选深度更深的叶子节点; 当选了叶子节点的父节点,叶子节点的贡献就会 - 1,所以转化为让父节点贡献 - 1; 所以可知,每个节点的幸福感 = 深度 - 子树大小 + 1; 然后进行dfs就可; AC代码原创 2021-07-28 12:05:27 · 138 阅读 · 0 评论 -
2021牛客暑期多校训练营3 Black and white(最小生成树)
题意 有一个 n * m 的白色棋盘,每个格子(i,j)都有一个权重c(i,j),网格被染成黑色的代价是权重。 当任意两行两列的四个相交方格,其中三个是黑色,那么第四个可以不计成本的染成黑色; 求染黑棋盘的最低成本; 由于格子数量很多,用以下方法来产生权重。 A0 = a; A(i + 1) = (Ai * Ai * b + Ai * c + d) % p; 其中A(m * (i - 1) + j) 是第 i 行和第 j 列的网格的成本c(i,j); 思路 思路很巧妙,把每一行每一列看成一个点,任意两行两列原创 2021-07-25 10:53:44 · 278 阅读 · 1 评论