5.树上问题

树上问题

开题顺序: \(ACH\)

\(A\) CF600E Lomsat gelral

  • 题解

\(B\) CF708C Centroids

\(C\) CF1706E Qpwoeirut and Vertices

  • 题解

\(D\) luogu P2491 [SDOI2011] 消防

\(E\) luogu P4253 [SCOI2015] 小凸玩密室

\(F\) luogu P8890 [入门赛 #7] 打 ACM 最快乐的就是滚榜读队名了 (Hard Version)

\(G\) BZOJ3786 星系探索

\(H\) CF825G Tree Queries

  • \(dis_{u,v}\) 表示从 \((u,v)\) 间的最小边权,询问等价于求 \(\min\limits_{i=1}^{|black|} \{ dis_{x,black_{i}} \}\)

  • 不妨钦定第一个黑色节点为根节点,上式等价于 \(\min(dis_{x,black_{1}},\min\limits_{i=2}^{|black|}\{ dis_{black_{i},black_{1}} \})\)

  • 发现只有黑点会发现影响,直接修改即可。

    点击查看代码
    struct node
    {int nxt,to;
    }e[2000010];
    int head[2000010],dis[2000010],cnt=0;
    void add(int u,int v)
    {cnt++;e[cnt].nxt=head[u];e[cnt].to=v;head[u]=cnt;
    }
    void dfs(int x,int fa)
    {dis[x]=(fa==0)?x:min(dis[fa],x);for(int i=head[x];i!=0;i=e[i].nxt){if(e[i].to!=fa){dfs(e[i].to,x);}}
    }
    int main()
    {int n,m,u,v,pd,x,rt=0,ans=0,minn=0x7f7f7f7f,i;scanf("%d%d",&n,&m);for(i=1;i<=n-1;i++){scanf("%d%d",&u,&v);add(u,v);add(v,u);}	for(i=1;i<=m;i++){scanf("%d%d",&pd,&x);x=(ans+x)%n+1;if(pd==1){if(rt==0){rt=x;dfs(rt,0);}minn=min(minn,dis[x]);}else{ans=min(minn,dis[x]);printf("%d\n",ans);}}return 0;
    }
    

\(I\) CF1381D The Majestic Brown Tree Snake

\(J\) luogu P2664 树上游戏

\(K\) luogu P5305 [GXOI/GZOI2019] 旧词

  • 将询问离线下来,进行扫描线。

  • \(k=1\) 的话就是 luogu P4211 [LNOI2014] LCA 了。

  • 仍考虑原题中从根节点到 \(x\) 的路径上的点打标记进行树上差分的做法。

  • 具体地,设 \(x\) 的权值为 \(c_{x}=dep_{x}^{k}-dep_{fa_{x}}^{k}\) ,那么 \(1 \to x\) 路径上的点权和就是 \(dep_{x}^{k}\)

  • 在移动右指针 \(r\) 的过程中,需要将 \(1 \to r\) 路径上点 \(x\) 的权值都加上对应的 \(c_{x}\) 。暴力做时间复杂度不太能接受,考虑求出 \(c\) 的前缀和后转化为整个区间加上一个特定值,线段树维护即可。

    点击查看代码

\(L\) luogu P5306 [COCI2018-2019#5] Transport

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/825850.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241425《计算机基础与程序设计》第6周学习总结

2024-2025-1 20241425《计算机基础与程序设计》第6周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13276这个作业的目标 计算机科学概论(第七版)第7章 《C语…

three.js+vue智慧社区web3d数字孪生三维地图

案例效果截图如下:具体案例场景和功能,详见b站视频: https://www.bilibili.com/video/BV1Bb421E7WL/?vd_source=7d4ec9c9275b9c7d16afe9b4625f636c案例场景逻辑代码:<template><div id="whole"><!-- threejs容器 --><div id="three&q…

网易云课堂视频课件课程下载工具,如何在电脑端下载网易云课堂视频课程课件资料到本地?

一. 安装网易云课堂课程下载器 1.获取学无止下载器 https://www.xuewuzhi.cn/study163_downloader 2.下载安装后,然后点击桌面快捷方式运行即可。 注意:杀毒软件可能会阻止外部exe文件运行,并将其当做成病毒,直接添加信任即可,本软件绝对没有木马病毒。 二. 使用说明 1.学…

html结合js设计一个可拍照可录制可下载的摄像头页面

功能如下html文件用户设置样式,代码如下<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Came…

ENSP之AR路由器一直#####的极端情况判断

系统版本,CPU 如下: 故障原因:AR设备一直###### 分析判断:由于是新安装的系统,没有安全软件限制,防火墙也都放行了,其他一切正常。ENSP凡是要通过virtual box调用的设备都出现了###。判断有两种情况,系统版本或者CPU问题。 通过和客户沟通得知,他对CPU进行了超频。…

如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)

我们在嵌入式Linux开发过程中经常会遇到一个问题,就是程序崩溃后不知道具体位置。因为我们发布到生产环境的一般是没有调试符号的(使用strip或编译时加-s参数,CMake生成的编译指令中的-O3也会造成调试符号丢失),毕竟嵌入式的存储都比较有限,肯定是需要剥离调试符号的。另…

统计学习方法笔记

统计学习方法 1.3 统计学习方法的三要素 1.3.1 模型 好,为什么要从1.3开始呢,因为看前面的课,我还没有用到这个软件。 方法=模型+策略+算法 模型有好多个,试试 策略:按照什么样的准则去选取模型 比如说看预测值和真实值有多大,或者损失函数最小等 算法 即怎样去实现去寻找…

zookeeper的安装与搭建

1、下载zookeeper,并上传到Linux并解压tar -xvf zookeeper-3.5.7.tar.gz -C ../2、修改文件名配置环境变量mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7 vim /etc/profile source /etc/profile3、修改配置文件创建data目录mkdir data创建myid文件touch myid vim myidserver…

Windows Server2022服务器部署RuoYi若依前后端分离

部署准备 虚拟机Windows Server2022 若依前后端分离v3.8.8打包好 jdk1.8 redis5 mysql8.4 iis服务 路由插件 重写插件 1.安装jdk1.8 https://www.azul.com/downloads/#downloads-table-zulu 略 2.安装启动redis5 https://github.com/tporadowski/redis/releases 下载安装默认配…

20222407 2024-2025-1 《网络与系统攻防技术》实验四实验报告

(一)实践目标 恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: o使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具; o使用超级巡…

状态压缩动态规划

\(3^n\)枚举子集 状压DP中相当重要的技巧(虽然后位有FWT,FMT替代,但不是都能代) for(int i = x; i; i = (i - 1) & x) { // i 就是 x 的子集 }题目 P6622 [省选联考 2020 A/B 卷] 信号传递 看数据范围,\(m \le 23\),且不同分数段增长很慢,表明会有\(O(2^m)\)的做法,…