随笔分类 - 题目总结 / 树形结构 / 树上问题
摘要:前言 这能不会, 这能不会, 这能不会??? 做了一会之后, 感觉确实可以不会 思路 题意 带权树 求一组排列 ppp 使得 dis(i,pi)→max\textrm{dis} (i, p_i) \to \maxdis(i,pi)→max 结论 一条边最多的经过次数就是其连接的两部分中较小的那一
阅读全文
摘要:前言 希望出题人知道一般情况下大根堆是完全二叉树, 谢谢 希望一些同学查证之后在评价, 没有查证之前先别评价, 谢谢 这些话是我傻逼, 但是放在这里作为进食 思路 题意 要求构造出一颗有 nnn 个节点的二叉树, 其中满足对于任意非叶子节点, 其对应的值大于其左右儿子 给定一个集合 S\mathbb
阅读全文
摘要:思路 题意 给定一个 n×mn \times mn×m (1≤n,m≤2000)(1 \leq n, m \leq 2000)(1≤n,m≤2000) 的方格图, 每个方格可以是 空地 房屋 一共有 p(1≤p≤2×105)p (1 \leq p \leq 2 \times 10^5)p(1≤p≤2
阅读全文
摘要:思路 容易想到把区间建成满二叉树, 太 了 考虑把翻转操作搞到树上去 最初的想法是显然的, 对于 的询问, 显然要把从 层的左右儿子全部翻转, 层是叶子节点 具体的, 可以把对于 的大区间这样
阅读全文
摘要:[ARC108F] Paint Tree 前言 复习什么的就留到下周了, 顺便把格式调好 现在把每日一练打了差不多 今天补了一下午的 , 终于还是被码力问题击碎了, 不过也还好 这道题是模拟赛 吉司机线段树和左偏树都只能明天搞了, 明天把 \(\rm{
阅读全文
摘要:前言 更重要的是研究这题的部分分, 赛时居然可以做到 没有拿到任何一个特殊性质 发现以前一直用的大标题很碍眼, 改了, 下课把之前的格式也改一下 思路 暴力 容易模拟, 做到 特殊性质 思路 你发现每一个区间都是其后面区间的前缀
阅读全文
摘要:前言 讲还是要多听, 这个很重要啊 思路 赛时的思路不太正确啊 容易想到树形 , 考虑令 表示对于 子树, 拆分出一块包含 的大小为 的连通块的方案数 考虑转移, 类似树上背包 \[f_{u, k} \gets \
阅读全文
摘要:前言 大风天踢了会球, 立竿见影就觉得感冒了, 无敌了, 一会去医务室整点抗病毒 颓了一会好点了() 思路 首先转化题意 给你一张 点 边的图 和一棵同样由这 个点组成的树 , 求对树上的点有多少中标号方式
阅读全文
摘要:前言 终于调完那弱智矩快了家人们 思路 然后也是再一次复习一下键值和优先级 我们发现键值是确定其横向的位置, 然后优先级用来调整高度 本题中给定了键值序列, 考虑哪种键序列可以产生相同的二叉查找树, 找到其中字典序最小的那一个 考虑挖一下性质 按照原序列建出来之后, 容易发现对于一个节点, 整体调动
阅读全文
摘要:思路 转化题意移步赛时记录 详细题解见 题解下载 好的那么主要问题仍然是怎样做才能扔掉后效性, 乍一看是不可能的, 但是我们可以慢慢的考虑 首先我们需要利用有效时间段 这个条件, 我们考虑建出每种选择的情况, 再按照树上的仇恨关系建出图 具体的, 对于每一种 \([j, j
阅读全文
摘要:前言 这个题居然有一点思路, 可喜可贺 太困难啦 思路 转化题意, 令 求 \(\displaystyle \sum_{
阅读全文
摘要:算法 显然的, 每次掷硬币, 女王(以下称为 ) 一定会将 (以下称为 ) 丢到下面, 一定会将自己拉到上层 带到这道题里面去, 我们显然要做类似于树上的概率 一眼发现, 令 表示第 个
阅读全文
摘要:算法 全都想到了, 不会读入和 直接把赛时记录的拉过来 对于 的数据点, 直接输出 即可 前 直接预处理即可 注意到一个很强的性质, 即 保证在此之前在城市 与 之间不存在任何路径 也就是说每次连
阅读全文
摘要:算法 转化题意: 给出一个无向正权无自环图 要求对于每个点 经过它的最短"简单环"的长度 有一种错误的思路, 对于每次询问 我们以该点 作为起点 先处理出到其余每点的最短路, 从一条边走回来即可 这个思路容易找到反例, 具体的, 我们显然可以发现如果 分别到 和
阅读全文
摘要:算法 首先, 合法路径上至少有两条边颜色不同, 我们考虑正难则反, 统计不合法的数量, 那么合法数量就等于总可能数 不可能数 中间转化的部分在这里写没有什么意义, 跳转至 Luogu 题解区 那么我们的问题转化成, 如何计算多条路径中, 某些路径不合法的情况数 首先我们需要考虑, 对于每
阅读全文
摘要:题面 似乎有原题, 但是很偏 挂个 pdf 题面下载 算法 暴力 很显然, 只需要在并查集维护时稍微加上一点细节 #include <cstdio> using namespace std; int n,m,fa[500010],a[500010]; long long ans=0; int fin
阅读全文
摘要:算法 转化题意, 即为 求树上最长不重链覆盖 长链剖分 显然可以使用长链剖分的思想, 直接剖分后贪心的求最大链即可 代码 #include <bits/stdc++.h> using namespace std; #define ll long long const int maxn = 1e5 +
阅读全文
摘要:题面 现在的题似乎都找不到原题了 挂个 pdf 题面下载 算法 容易想到链和菊花图的做法, 需要注意的是计算深度只能用 来跑, 不能保证链的顺序与输入顺序相同 对于 , 观察暴力做法 暴力 容易发现对于每一个点, 都要由起点
阅读全文
摘要:算法 暴力算法还得排序 观察到重要信息 我们保证 成立 因此可以贪心, 从离根最近的点一路向北向下找到查询点 要快速找到最上方不为空的点, 联想到倍增法, 于是优化到 总时间复杂度 代码 #include
阅读全文