随笔分类 -  题目总结 / 树形结构 / 树上问题

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

more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示