Jzoj3555 树的直径

【JZOJ3230】树环转换 description 给定一棵N个节点的树,去掉这棵树的一条边需要消耗值1,为这个图的两个点加上一条边也需要消耗值1。树的节点编号从1开始。在这个问题中,你需要使用最小的消耗值(加边和删边操作)将这棵树转化为环,不允许有重边。 环的定义如下: (1)该图有N个点,N条边。 (2)每个顶点的度数为2。 (3)任意两点是可达的。 树的定义如下: (1)该图有N个点,N-1条边。 (2)任意两点是可达... 阅读详情
科学家在观测一棵大树,这棵树在不断地生长,科学家给这棵树的每个节点编了号。开始的时候,这棵树很小只有4个节点,一号点为根,其他三个节点挂在上面。

在接下来的M次观察中,科学家每次都能看见这棵树从叶子处长出新的两个节点来。如果当前这棵树有N个节点,那么这棵树的新的两个节点的编号分别为N+1,N+2。科学家记录下了这棵树生长的过程,需要你帮着计算这棵树实时的直径。树的直径就是这棵树最远的两个节点的距离。

每行一个整数x,代表这棵树的编号为x的节点下面又长了两个叶子节点。保证每次生长的节点都是叶子节点

好久没在jzoj上切题了,估计ranking都要掉了赶紧做一做今天的模拟题

还好第一题还比较简单,直接将新建节点和原来直径合并就好了,求lca就用倍增ok

#pragma GCC opitmize("O3")
#pragma G++ opitmize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int f[200010][18],d[200010],n;
inline void link(int p,int x){
	f[x][0]=p; d[x]=d[p]+1;
	for(int i=1;i<18;++i) f[x][i]=f[f[x][i-1]][i-1];
}
inline void swim(int& x,int d){
	for(int i=0;d;++i,d>>=1) if(d&1) x=f[x][i];
}
inline int gLca(int x,int y){
	if(d[x]>d[y]) swap(x,y);
	swim(y,d[y]-d[x]);
	if(x==y) return x;
	for(int j=17;;){
		for(;~j&&f[x][j]==f[y][j];--j);
		if(j<0) return f[x][0];
		x=f[x][j]; y=f[y][j];
	}
}
int main(){
	d[2]=d[3]=d[4]=1; *f[1]=0;
	f[2][0]=f[3][0]=f[4][0]=1;
	scanf("%d",&n); int x=2,y=3,r=2;
	for(int	p,c,t=4;n--;){
		scanf("%d",&c);
		link(c,++t); link(c,++t);
		p=gLca(x,t);
		if(d[x]+d[t]-2*d[p]>r){ r=d[x]+d[t]-2*d[p]; y=t; }
		p=gLca(y,t);
		if(d[y]+d[t]-2*d[p]>r){ r=d[y]+d[t]-2*d[p]; x=t; }
		printf("%d\n",r);
	}
}

DevExpress学习之GridControl导入导出至EXCEL 导出: private void EXCELout_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Title = "导出Excel"; saveFileDialog.Filter = "Excel文件(*.xls)|*.xls"; 阅读详情

相关推荐

【Creo】关于Creo一换网络就报错许可证丢失问题解决方案

依照我的个人理解,Creo只要一更换网络,则其许可证里面的网卡参数和现在的网络就对不上了,所以就会出现报错,并且有可能是报错代码(-9),提示许可证激活有问题。

weixin_52002180的博客 6034

jzoj3555 树的直径

Description科学家在观测一棵大树,这棵树在不断地生长,科学家给这棵树的每个节点编了号。开始的时候,这棵树很小只有4个节点,一号点为根,其他三个节点挂在上面。 在接下来的M次观察中,科学家每次都能看见这棵树从叶子处长出新的两个节点来。如果当前这棵树有N个节点,那么这棵树的新的两个节点的编号分别为N+1,N+2。科学家记录下了这棵树生长的过程,需要你帮着计算这棵树实时的直径。树的直径就是这棵

ChickenT的博客 308

Mathtype公式排版避坑指南:固定行距20磅下如何完美显示上下标(实测有效)

本文针对学术论文在固定行距20磅要求下,Mathtype公式上下标显示不全或被裁剪的问题,提供了实测有效的解决方案。文章深入剖析了固定行距与公式排版的冲突原理,并详细指导用户通过调整Mathtype的“定义间距”参数(如下标深度、上标高度),以及利用“格式化公式”功能进行批量处理,确保公式在严格遵守期刊格式要求的同时清晰完整显示。

weixin_29228203的博客 1068

【jzoj5042】【最小直径】【树形动态规划】【贪心/结论】

题目大意你有一个n个点m条边的森林,编号从0开始,边有边权,你现在要添加若干边权为L的边,满足:1、最后n个点构成一颗树。2、这棵树的直径尽量小。请你求出这个最小的直径是多少。解题思路求出每一个连通块的半径,答案及第一大加第二大+L和第二大加第三大+2L取最大。code#include<set> #include<cmath> #include<cstdio> #include<cstring> #

inklutcuah’s blog 789

【ESP32开发】——开发环境搭建(VSCode+PlatformIO)

本章内容主要介绍ESP32的开发环境搭建(基于VSCode+PlatformIO)的流程与相应的注意事项,避免开发ESP32止于环境搭建!在项目的维护过程中,可以更好地管理和更新代码、调试问题,并且能够快速适应和采用新的功能、库或硬件平台。:VSCode 的代码提示和自动补全功能,以及 PlatformIO 的管理工具,都能帮助你编写规范、格式良好且易于阅读的代码。:Arduino 框架是一种简单、易用的嵌入式开发框架,适用于快速原型开发和小型项目。需要选择对应自己开发的开发板型号。

m0_61934621的博客 8410

【Agent从入门到实践】40 容错优化:异常处理、重试机制、降级策略

各位小伙伴,咱们的多Agent框架一路优化到现在,决策快、执行效率高、资源用得省,看似啥都行,但只要一遇到网络波动、工具故障、数据异常调用web_search工具时网络超时,整个检索任务直接失败,写作Agent没数据可用向量库连接异常,向量检索直接崩掉,依赖检索结果的Agent全趴窝单个Agent执行出错,整个并行任务流程直接中断,前功尽弃高并发下部分工具调用失败,框架没有备用方案,只能返回任务失败说白了,咱们之前的框架只有正常执行逻辑,没有异常兜底逻辑。

人工智能AI技术 908

5042. 【NOI2017模拟4.4】最小直径

Description 你有一个n个点m条边的森林,编号从0开始,边有边权,你现在要添加若干边权为L的边,满足: 1、最后n个点构成一颗树。 2、这棵树的直径尽量小。 请你求出这个最小的直径是多少。 Input 第一行三个整数n,m,L。 接下来m行,每行三个整数u,v,w,表示u和v之间有长为w的边。 Output 一行一个整数,表示最小直径的长度。 Sample Input 1...

zsjzliziyang的博客 294

Allegro 中复制一部分PCB到另一个PCB中去

引言:自从学了allegro后,我每天快乐地再拉线,一开心肯定出事情。不料今天一高兴,把本来在5层的铜皮直接在4层画起来了。不过,幸好我知道换层,才省了又要画铜皮的时间。好了,开干,如果要将其他层的铜皮换到想要换到的层上,就需要这个命令。

tianpu2320959696的博客 963

[ZOJ3555][GDKOI2014模拟]树的直径

找不到原题了…. Description 科学家在观测一棵大树,这棵树在不断地生长,科学家给这棵树的每个节点 编了号。开始的时候,这棵树很小只有4 个节点,一号点为根,其他三个节点挂在上面。 在接下来的M 次观察中,科学家每次都能看见这棵树从叶子处长出新的两 个节点来。如果当前这棵树有N 个节点,那么这棵树的新的两个节点的编号分 别为N+1,N+2。科学家记录下了这棵树生长的过程,需要...

Beginner_df016 286

#systemverilog# 之 event region 和 timeslot 仿真调度(三)Verdi 辅助查看

通过今天的学习,我们知道:event region 是event sequence 的全集。我们打开了 event region feature 也就开启了event sequence 的功能。

那么菜的博客 1365

【硬件工程师面经整理18_Smith圆图】

若文中任何内容侵犯了您的合法权益,请相关权益人及时与我联系,我将立即进行核实并采取适当措施,包括但不限于删除相关内容或更新文章以消除影响。**在Smith圆图上,源阻抗表示为圆心,而负载阻抗表示为圆图上的一个点。具体来说,通过将负载阻抗在Smith圆图上移动到特定位置,使其与传输线特性阻抗形成纯电阻或纯电抗的组合,从而实现匹配。例如,反射系数表示为Smith圆图上的一个点,而驻波比则表示为圆图上两个点之间的距离。Smith圆图是用于阻抗匹配和网络分析的工具,它是一种将复阻抗表示为坐标的图形。

LeeYLong的博客 651

jzoj3555 【GDKOI2014模拟】树的直径 lca+离线

Description科学家在观测一棵大树,这棵树在不断地生长,科学家给这棵树的每个节点编了号。开始的时候,这棵树很小只有4个节点,一号点为根,其他三个节点挂在上面。在接下来的M次观察中,科学家每次都能看见这棵树从叶子处长出新的两个节点来。如果当前这棵树有N个节点,那么这棵树的新的两个节点的编号分别为N+1,N+2。科学家记录下了这棵树生长的过程,需要你帮着计算这棵树实时的直径。树的直径就是这棵树最

olahiuj的博客 509

最全面的行人重识别数据集汇总

汇总了一些REID的数据集,几乎涵盖了所有的数据集。如果有缺少的欢迎留言补充。我将能下载到的数据集放在了网盘里,链接如下:链接:https://pan.baidu.com/s/1hQ4PKvtAhAvoZiXbcIu93w 提取码:o3iyQMUL iLIDS基于iLIDS MCTS的数据集,是一个在机场繁忙时候通过监控系统中多个摄像头收集到的数据集。几乎每个ID(identity)都有从两个无重叠(区域)的摄像头拍摄的四幅图像。该数据集具有严重遮挡和姿势差异的场景。

m0_47867638的博客 1万+

【题解】树上路径

题目描述 一棵树的构造过程为:首先以1号点为根,然后依次加入2~n号点。加入i号点时,在1~i-1点中选择一个点为f[i],将i号点与其相连接。Yuri想要求出,每次加点之后路上的最长路径长度。 输入格式 第一行一个整数n,表示树的节点个数。 第二行n-1个整数,第i个整数表示f[i+1]。 输出格式 一行n-1个整数,分别表示加完2~n号点后,树上最长路径的长度。 样...

C@bMv7GRVt)Q 264

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JZOJ2017.07.08 C组

T1题目描述:小x和小y是好朋友。小y的成绩很差,以至于 GPA(平均绩点)在系内倒数。系内一共有 N 位同学,每位同学有自己的 GPA,以及已修学分数,定义 GPT = GPA ×已修学分数。小x为了帮助小y提高成绩,给小y提了一个要求:新学期的 GPA 要超过系内排名第 K 位的同学。 为了帮助理解,给出一个例子: 现在给出系里面每位同学的 GPT(只有一位小数),以及他们的已修学分。你需要帮

Brute♂force 783

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

bzoj2180: 最小直径生成树

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2180 思路:先枚举图的绝对中心在哪条边(u,v)上,绝对中心就是到最远点的距离最近的点,可以在边上 设绝对中心到该边一个端点的距离为x 然后每个图中的s点到它的距离就会是关于x的函数 即min(dis[u][s]+x,dis[v][s]+L-x) 这是一条折线,那么每个点...

weixin_30432007的博客 195

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

12.9日+基环树 dfs找环

基环树就是在一棵树上加一条边的图。一般结合其他树形dp、树的直径等题型考察,有一定难度。 处理方法一般都是先找环。 例如这道题目,BZOJ 1791 [Ioi2008] Island 岛屿:https://www.lydsy.com/JudgeOnline/problem.php?id=1791,求基环树森林的树直径之和。后面的树形dp不会,但找环和求以某点为根的子树的深度还是可以的...

又菜又爱玩 1917

【JZOJ5783】树

Description 一棵树,支持换根,给u,v的lca的子树的所有结点加上一个权值x,维护子树和。 Solution 把树放到dfs序上,我们不用真的换根,只要记录根的位置。如果根在lca子树外不会有影响,在lca子树内就找到根到lca路径上深度比lca大1的点,除了这个点往下的子树其它都要修改,在dfs序上就是至多两段区间的修改。注意常数。 Code #include&...

sadnohappy 263

【JZOJ A组】 树

Description 梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到 点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地 选择一条走过去, 为了确保第二天能够准时到校, 你要求出每个梦期望经过多少条边才能苏 醒. 为了避免精度误差, 你要输出答案模10^9 + 7的结果. Input 第一行两个整数分...

Brute♂force 623

【JZOJ】树

题目大意 一棵树,需找到一条链,要求次此链层次从上到下,并且链上的值相加等于S,链的顶端不一定是根节点,问有多少条这种链 输入 第一行,n和S,代表n个节点 第二行,n个数,第i个数代表第i个节点的值 第3~n + 1行,每行两个数,x,y,代表x是y的父亲 输出 一个数,为有多少条这种链 样例输入 3 3 1 2 3 1 2 1 3 样例输出 2 数据范围 对于30%数据,N⩽100N \l...

Maple的博客 425

jzoj 5664.【GDOI2018Day1模拟4.17】凫趋雀跃 dp

Description Input Output Sample Input 2 2 1 1 3 0 Sample Output 6 Data Constraint Hint 分析: 显然可以考虑容斥。 我们最终的答案为走不少于000次不合法向量-不少于111次不合法向量+不少于222次不合法向量…… 设f[i][x][y]f[i][x][y]f[i][x...

liangzihao1的博客 490

[贪心]JZOJ 3230 【佛山市选2013】树环转换

Description 给定一棵N个节点的树,去掉这棵树的一条边需要消耗值1,为这个图的两个点加上一条边也需要消耗值1。树的节点编号从1开始。在这个问题中,你需要使用最小的消耗值(加边和删边操作)将这棵树转化为环,不允许有重边。环的定义如下:(1)该图有N个点,N条边。(2)每个顶点的度数为2。(3)任意两点是可达的。树的定义如下:(1)该图有N个点,N-1条边。(2)任意两点是可达的。 ...

weixin_34174132的博客 257
上一篇: 51Nod1022 石子归并V2
下一篇: Jzoj3542 冒泡排序
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值