ABC267F 题解

news/2025/1/16 15:44:54/文章来源:https://www.cnblogs.com/adam01/p/18340197

注意到,对于一棵树 \(T\) 的任一直径 \(a-b\),对于任意一点 \(u\),离 \(u\) 最远的点一定是 \(a\)\(b\)

考虑反证:如图,如果存在点 \(c\) 使得 \(dis(u,c)>\max(dis(u,a),dis(u,b))\)

如图,\(a-b\) 为直径,\(d2>d1\)。因为有 \(d4>d3+d2\),所以有 \(d2+d3+d4>2d2+2d3>d1+d2\),所以 \(a-b\) 不是直径。

所以只要任找一条直径 \(x-y\),分别处理出以 \(x,y\) 为根时的倍增数组,询问时找到离自己更远的端点,倍增 \(k\) 步即可。

不存在输出 -1。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;const int N = 2e5 + 5, K = 20;
vector<int> e[N];
int n, st[N][K], st2[N][K], d[N];pair<int, int> dfs(int x, int fa)
{pair<int, int> ans = {0, x};for(int i : e[x]){if(i == fa) continue;auto t = dfs(i, x);t.first ++;ans = max(ans, t);}return ans;
}int dep[N], dep2[N];
void dfs2(int x, int fa, int d, int dep[N], int st[N][K])
{dep[x] = d;st[x][0] = fa;for(int i = 1; i < K; i ++)st[x][i] = st[st[x][i - 1]][i - 1];for(int i : e[x]){if(i == fa) continue;dfs2(i, x, d + 1, dep, st);}
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cin >> n;for(int i = 1; i < n; i ++){int x, y; cin >> x >> y;e[x].push_back(y);e[y].push_back(x);}int l = dfs(1, 0).second;int r = dfs(l, 0).second;dfs2(l, 0, 1, dep, st);dfs2(r, 0, 1, dep2, st2);int q; cin >> q;while(q --){int x, k; cin >> x >> k;if(dep[x] > dep2[x]){for(int i = K - 1; i >= 0; i --)if((k >> i) & 1) x = st[x][i];}else{for(int i = K - 1; i >= 0; i --)if((k >> i) & 1) x = st2[x][i];}if(!x) cout << -1 << "\n";else cout << x << "\n";}return 0;
}

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

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

相关文章

通用测试技术5

一、缺陷的基本概述缺陷的定义缺陷的属性缺陷类型:缺陷的类型包括功能(Function)、界面(UI)、文档(Documentation)、软件包(Package)、性能(Performance)、接口(Interface)[注意] 需求分析、设计阶段,文档类型的缺陷多; 集成测试阶段,一般接口类型的缺陷多一些; 系统测试阶段…

Windows的Docker安装RustDesk自建服务

一、安装Docker Desktop Installer 二、CMD拉取RustDesk镜像docker image pull rustdesk/rustdesk-server三、创建docker-compose.yml文件services:hbbs:container_name: hbbsimage: rustdesk/rustdesk-server:latestcommand: hbbs -r 公网IP:端口(21117)environment:- &quo…

Oracle数据库-常见的日期处理

‌Oracle ‌Dual表 是Oracle数据库中的一个虚拟表,任何用户均可读取,经常用在没有目标表的SELECT语句块。SELECT 马铃薯 AS NAME, ORACLE数据库学习 AS PROJECT FROM dual1. 获取当前日期 SYSDATE:获取计算机操作系统的当前日期和时间,是通过sysdate函数实现的 CURRENT_DAT…

易优CMS头条文章设置与调用标签

{eyou:arclist flag=h orderby=now} <li> <a href={$field.typeurl}>{$field.typename}</a> <a href={$field.arcurl}>{$field.title}</a> </li> {/eyou:arclist}扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CM…

obsidian群晖同步方案-Mbius Sync

概述 采用Mbius Sync的原因,主要有两点原因使用obsidian的remote save 在移动端同步后,obsidian经常卡死,无法查看; remote save 配置过程种,ios设备配置的服务地址需要https ,但是家用没有ssl证书导致配置失败;群晖-obsidian-各设备之间的同步方案nas 配置Mbius Sync 1…

SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared

错误记录: SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared 解决方案: 由于个别空间的数据库配置问题,导致报错无法打开前后台,具体解决如下: 第一步:建议用专业的编辑器Notepad++,打开数据库配置文件 application/database.php(该文…

易优CMS模板标签videoplay视频播放

[基础用法]标签:videoplay描述:视频播放标签,用于视频模型的内容页,调用后台上传的视频。 提示:如果后台上传的视频有多个选集,可以使用【videolist 视频列表】标签,进行视频切换播放。用法: {eyou:videoplay aid=文档ID autoplay=on id=video}<video {$video.id} w…

HTML侧边部分内容滑动跟随 左侧跟随滚动模块代码

网站是左右两列板块布局,左侧规划了客服代码, 当鼠标下拉的时候, 微信客服代码会出现上移的情况。 为了提高转化,希望左侧客服模块跟随内容滚动。网站左侧跟随滚动模块 这是截止目前最简单、高效的方法, 代码简洁。代码 <div id="box"> <div id="…

宝塔/home 100%了,网站无法访问了

错误记录: 宝塔/home 100%了,网站无法访问了。报错【错误代码】 SQLSTATE【08004】【1040】Too many connections 错误原因: 宝塔/home 100% 解决方案: 宝塔界面/home满载,网站空间打不开!或者报错的问题非常普遍, 大多是网站日志占用了过多空间导致的, 大部分可以通过…

解决Maximum execution time of 120 seconds exceeded

在循环开始前加入代码://设置超时时间 ini_set("max_execution_time",18000); set_time_limit(0); set_time_limit() 当此函数被调用时,set_time_limit()会从零开始重新启动超时计数器。换句话说,如果超时默认是30秒,在脚本运行了了25秒时调用set_time_limit(20)…

网站报错 \\?\C:\Windows\inetsrv\config\applicationHost.config

错误记录: 网站报错 \\?\C:\Windows\inetsrv\config\applicationHost.config错误原因: 服务器C盘无空间 解决方案: 服务器C盘无空间,释放空间后问题解决。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascr…

磁盘IO性能分析

一、IO性能分析 1.1 IO性能、顺序访问和随机访问 如果去看硬盘厂商的性能报告,通常你会看到两个指标;一个是响应时间(Response Time); 另一个叫作数据传输率(Data Transfer Rate),数据传输率也称吞吐率。1.1.1 数据传输率 我们先来看一看后面这个指标,数据传输率。 我…