首页 > 其他分享 >【杂题乱写】12 月北京省选树上问题专题训练

【杂题乱写】12 月北京省选树上问题专题训练

时间:2023-12-14 20:40:11浏览次数:39  
标签:12 log 乱写 Luogu 分治 省选 答案 LCA mathrm

A. Luogu-P9058 Ynoi 2004 rpmtdq

解密:Range Pair Mininum Tree Distance Query

支配对问题,这里的支配是若 \(L\le l<r\le R\),且 \(\mathrm{dist}(l,r)\le \mathrm{dist}(L,R)\),那么 \((l,r)\) 支配 \([L,R]\)。

考虑点分治,在过程中对每个分治中心 \(ct\) 以及节点 \(i,j\),默认 \(\mathrm{dist}(ct,i)\le \mathrm{dist}(ct,j)\)。此时找到 \(j\) 前后第一个满足这样条件的 \(i\) 就行了,发现对于其他的 \(i'<i<j\),且 \(\mathrm{dist}(ct,i')\),那么 \(\mathrm{i',i}\le \mathrm{i',j}\),那么 \((i',j)\) 一定不在支配集。虽然这个判定条件很松,但作为必要条件且每次只会贡献 \(O(1)\) 个支配对,剩下就可以二维偏序求解了。

时间复杂度 \(O(n\log^2 n+q\log n)\)。

提交记录:Submission - Luogu

C. CodeForces-757G Can Bash Save the Day? *3400

朴素想法是点分树然后数据结构维护,优化一下自然想到树上主席树,但是修改很困难。

问题在于修改要把每个版本都改掉,考虑操作的特殊性在于邻项交换,那么交换主席树的两维,以 \(p\) 为版本,点分树上节点线段树下标,这样每次修改只对 \([1,x]\) 这个前缀有影响,直接重新建一下就行了。时空复杂度都是 \(O(n\log^2 n)\)。

上面这个做法是卡不过去的,所以等我学完边分树回来写能过的好做法。

H. Luogu-P5904 POI 2014 HOT-Hotels 加强版

这类的三元组有两种:\(\mathrm{LCA}\) 是或不是重心的。

先考虑朴素 DP 怎么做,我们希望问题在子树内解决,所以要在 \(\mathrm{LCA}\) 处统计答案。

对于第一种情况,设 \(f_{u,d}\) 为 \(u\) 子树内距离为 \(d\) 的节点个数,\(g_{u,d}\) 为 \(u\) 子树内到 \(u\) 距离均为 \(d\) 且 \(\mathrm{LCA}\) 为 \(u\) 的点对数。

枚举每棵子树以及距离,统计答案的过程:

\[g_{u,d+1}\times f_{v,d}\to \mathrm{ans} \]

\[f_{u,d+1}\times f_{v,d}\to g_{u,d+1} \]

\[f_{v,d}\to f_{u,d+1} \]

对于第二种情况,设目标三元组 \((u,v,w)\),有三部分组成:\(\mathrm{LCA}(u,v)\) 到 \(u,v\) 距离相等,均为 \(d_1\),\(\mathrm{LCA}(u,v,w)\) 到 \(w\) 的距离 \(d_2\) 与到 \(\mathrm{LCA}(u,v)\) 的距离 \(d_3\) 无边集交且满足 \(d_1=d_2+d_3\)。

因为在 \(\mathrm{LCA}(u,v,w)\) 处统计答案,发现 \(d_3=d_1-d_2\),因此 \(d_1-d_2\) 相等的位置本质没有区别,设 \(h_{u,d}\) 为 \(u\) 子树内满足这样情况且 \(d_1-d_2=d\) 的点对数,那么转移也类似上面了。

考虑怎么优化。

\(g\) 是只对一棵子树有效的,不需要继承,\(f\) 比较朴素的继承即可,而 \(h\) 比较不同,考虑到 \(v\) 到 \(u\) 后,\(d_1\) 不变而 \(d_2\) 增加 \(1\),因此继承是形如 \(h_{v,d}\to h_{u,d-1}\),与正常的继承不同。这就需要我们预处理指针时,把重儿子的指针设为父亲的指针减 \(1\),从而空间要开 \(2\) 倍。

统计答案也需要精细处理,一个简单的想法是先计算轻子树之间的答案,这部分照搬暴力即可,同时要用一个临时数组记录一下当前统计到的 \(f,g,h\)。计算完之后,可以和重儿子继承来的 \(f,h\) 再合并得到另一部分的答案。

提交记录:Submission - Luogu

J. CodeForces-888G Xor-MST *2300

完全图二元函数最小生成树用 B 姓算法,两个树异或就建 01-Trie,那么在连最高位是 \(2^k\) 的边时,所有同属 \(2^k\) 子树的节点一定都连通了,那么就是两棵子树对应集合找一个最小异或和,启发式合并地选较小的一个暴力去 01-Trie 查询。时间复杂度 \(O(n\log n\log V)\)。

提交记录:Submission - CodeForces

M. Luogu-P6976 NEERC2015 Distance on Triangulation

实际上是一个三角形剖分,形成了一个平面图。

发现可以选择一条边 \((u,v)\),分别对当前的图 BFS 求 \(u\) 和 \(v\) 的单源最短路,那么此时所有端点在 \((u,v)\) 两侧的询问一定要经过 \(u,v\) 至少一个端点,那么就可以处理跨过的询问了,这个过程类似分治,所以要求尽量选择“重心”的一条边。

平面图转成对偶图,这样形成一棵树,发现点分治的过程就找到了重心。

实现比较困难,我还没实现出来。

标签:12,log,乱写,Luogu,分治,省选,答案,LCA,mathrm
From: https://www.cnblogs.com/SoyTony/p/Tree_Training_Problems_of_Provincial_Team_Selection_in_B

相关文章

  • 2023-12-14 npm和yarn无法拉取依赖,cnpm可以 ==》切换镜像源
    这两天遇到个问题,是关于依赖无法拉取的问题,尽管我有三分猜到了是什么原因,但我还是不肯往那个方向思考,哎,真是死牛一便颈。如,我要给前端项目装个express框架,用npm装,装了大半天一点反应都没有,用yarn装就直接报网络无法连接,如图: 用cnpm装就没问题,秒过。注意:我的电脑是能正常上网......
  • 文心一言 VS 讯飞星火 VS chatgpt (156)-- 算法导论12.3 3题
    三、用go语言,对于给定的n个数的集合,可以通过先构造包含这些数据的一棵二叉搜索树(反复使用TREE-INSERT逐个插入这些数),然后按中序遍历输出这些数的方法,来对它们排序。这个排序算法的最坏情况运行时间和最好情况运行时间各是多少?文心一言:在Go语言中,使用二叉搜索树(BST)进行排序......
  • 12.15----python类
    classUser:def__init__(self,first_name,last_name):"""初始化姓和名"""self.f_name=first_nameself.l_name=last_namedefdescribe_user(self):"""返回整洁的描述性姓名"&q......
  • 2023-2024-1 20232312 《网络空间安全导论》第六周学习
    2023-2024-120232312《网络空间安全导论》第六周学习教材学习内容总结6.1应用安全概述应用安全情况概述:在各类应用服务系统重,身份认证是保障应用安全的基础,其不仅仅包括传统的人的身份认证、软件等网络实体都需要身份认证和可信管理。不同场景、不同约束条件下都需要采用......
  • B3907 [语言月赛 202312] NK
    [语言月赛202312]NK题目描述给定两个正整数\(N,K\),请你统计符合以下条件的正整数\(x\)的数量:\(1\leqx\leqN^N\)。\((x\bmodK)\)是\(N\)的倍数。\(x\)的个位是\(N\)。\(x\bmodK\)代表\(x\)除以\(K\)的余数,例如\(7\bmod3=1\)。输入格式输......
  • Stable Zero123震撼发布:单图生成高质量3D模型
    模型简介12月13日,Stability.ai在开源领域引起了巨大震动,其最新作品StableZero123成为了焦点。这款基于Zero123模型的升级版本,主要通过改进的渲染数据集和分数蒸馏方法,大幅提升了3D模型的生成效果和训练效率。值得一提的是,StableZero123可以与Stability.ai的高精准图片模型SDXL相......
  • 128. 最长连续序列
    1.题目介绍给定一个未排序的整数数组\(nums\),找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 \(O(n)\)的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4。示例......
  • Solution Set 2023.12.14
    CF698FCoprimePermutation考虑\(p_i=0\)的情况下怎么做,首先排列\(p_i=i\)一定符合条件,考虑在此基础上生成其他符合要求的排列,考虑什么情况下\(p_i\)和\(p_j\)可以互换,发现其可以互换当且仅当对于所有\(x\neqi\)且\(x\neqj\),均有\(\left[\gcd\left(i,x\rig......
  • 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.14)
    一、百度网盘SVIP超级会员共享账号可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答。我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免了U盘的物理载体,直接在网上就实现文件传输。百度网盘SVIP会员可以让自己百度账......
  • Pivotal应用案例之12306.cn的技术革命
     “通过技术改造解决了困扰我们多时的尖峰高流量并发问题,让全国人民不再因为技术原因而抱怨,我们终于舒了一口气。PivotalGemFire分布式集群内存数据技术对整个技术改造发挥了关键的作用。同时,感谢Pivotal公司及其实施方项目团队的努力,在技术开改造过程中确保旧系统顺畅运行、旧......