BZOJ5192[Usaco2018 Feb] New Barns

LabVIEW多通道电压采集系统设计与Python数据处理实战 多通道数据采集是工业测量与科研实验的基础技术,其核心在于实现高精度、稳定的信号捕获与处理。基于奈奎斯特定理,合理设置采样率(通常为信号最高频率的5-10倍)是保证信号保真度的关键。现代采集系统常采用LabVIEW结合Python的方案,前者负责硬件控制与实时采集,后者进行高效数据处理与分析。这种架构特别适用于振动监测、设备诊断等需要长时间连续记录的工业场景。以TDMS二进制格式存储数据相比传统CSV可提升10倍以上读写效率,同时支持多通道时间对齐。通过生产者-消费者模式实现采集与存储解耦,配合硬件定时策略可 阅读详情

原题链接:https://www.lydsy.com/JudgeOnline/problem.php?id=5192

New Barns

Description

FarmerJohn注意到他的奶牛们如果被关得太紧就容易吵架,所以他想开放一些新的牛棚来分散她们。每当FJ建造一个新牛棚的时候,他会将这个牛棚用至多一条双向道路与一个现有的牛棚连接起来。为了确保他的奶牛们足够分散,他有时想要确定从某个特定的牛棚出发,到它能够到达的最远的牛棚的距离(两个牛棚之间的距离等于从一个牛棚出发到另一个之间必须经过的道路条数)。FJ总共会给出Q(1≤Q≤10^5)次请求,每个请求都是“建造”和“距离”之一。对于一个建造请求,FJ建造一个牛棚,并将其与至多一个现有的牛棚连接起来。对于一个距离请求,FJ向你询问从某个特定的牛棚通过一些道路到离它最远的牛棚的距离。保证询问的牛棚已经被建造。请帮助FJ响应所有的请求。

Input

第一行包含一个整数Q

以下Q行,每行包含一个请求。每个请求的格式都是“B p”或是“Q k”

分别告诉你建造一个牛棚并与牛棚p连接,或是根据定义求从牛棚k出发最远的距离。

如果p=-1,则新的牛棚不会与其他牛棚连接。

否则,p是一个已经建造的牛棚的编号。

牛棚编号从1开始,所以第一个被建造的谷仓是1号谷仓,第二个是2号谷仓,以此类推。

Output

对于每个距离请求输出一行。注意一个没有连接到其他牛棚的牛棚的最远距离为0

Sample Input

7
B -1
Q 1
B 1
B 2
Q 3
B 2
Q 2

Sample Output

0
2
1

输入样例对应下面的牛棚网:

  (1) 

    \   

     (2)---(4)

    /

  (3)

对于请求1,我们建造牛棚1。对于请求2,我们询问从1出发到最远连接的牛棚的距离。由于牛棚1没有与其他牛棚连接,所以回答是0。对于请求3,我们建造牛棚2并将其与牛棚1连接。对于请求4,我们建造牛棚3并将其与牛棚2连接。对于请求5,我们询问从3出发到最远连接的牛棚的距离。在这时,最远的是牛棚1,距离为2单位。对于请求6,我们建造牛棚4并将其与牛棚2连接。对于请求7,我们询问从2出发到最远连接的牛棚的距离。所有其他三个牛棚1,3,4都与2相距相同的距离1,所以这就是我们的回答。

题解

大力 L C T \mathcal{LCT} LCT维护树的直径

LCT天下第一!!!!

代码
#include<bits/stdc++.h>
#define ls son[v][0]
#define rs son[v][1]
using namespace std;
const int M=1e5+5;
int dad[M],son[M][2],sum[M],le[M],ri[M],f[M],q,tot;
char ch[5];
bool rev[M];
bool notroot(int v){return son[dad[v]][0]==v||son[dad[v]][1]==v;}
void up(int v){sum[v]=sum[ls]+sum[rs]+1;}
void turn(int v){swap(ls,rs);rev[v]^=1;}
void push(int v){if(!rev[v])return;if(ls)turn(ls);if(rs)turn(rs);rev[v]=0;}
void down(int v){if(notroot(v))down(dad[v]);push(v);}
void spin(int v)
{
	int f=dad[v],ff=dad[f],k=son[f][1]==v,w=son[v][!k];
	if(notroot(f))son[ff][son[ff][1]==f]=v;son[v][!k]=f,son[f][k]=w;
	if(w)dad[w]=f;dad[f]=v,dad[v]=ff;
	up(f);
}
void splay(int v)
{
	down(v);int f,ff;
	while(notroot(v))
	{
		f=dad[v],ff=dad[f];
		if(notroot(f))spin((son[f][0]==v)^(son[ff][0]==f)?v:f);
		spin(v);
	}
	up(v);
}
void access(int v){for(int f=0;v;v=dad[f=v])splay(v),rs=f,up(v);}
void beroot(int v){access(v),splay(v),turn(v);}
void link(int x,int y){splay(x),dad[x]=y;}
int dis(int x,int y){beroot(x),access(y),splay(y);return sum[y]-1;}
int find(int v){return f[v]==v?v:f[v]=find(f[v]);}
void in(){scanf("%d",&q);}
void ac()
{
	int x,l1,l2,l3;
	while(q--)
	{
		scanf("%s%d",ch,&x);
		if(ch[0]=='B')
		{
			++tot;
			if(x==-1)f[tot]=le[tot]=ri[tot]=tot;
			else
			{
				link(tot,x);x=f[tot]=find(x);
				l1=dis(tot,le[x]),l2=dis(tot,ri[x]),l3=dis(le[x],ri[x]);
				if(l1>=l2&&l1>=l3)ri[x]=tot;else if(l2>=l1&&l2>=l3)le[x]=tot;
			}
		}
		else l1=find(x),printf("%d\n",max(dis(le[l1],x),dis(ri[l1],x)));
	}
}
int main(){in();ac();}
迷路的奶牛 Farmer John C++ 描述 Farmer John的N头奶牛,总是会迷路走到农场上遥远的地方去!他需要你帮助将她们一起赶回来。 农场的草地大体是一块狭长的区域——我们可以将其想象成一条数轴,奶牛可以占据数轴上的任意整数位置。这N头奶牛现在正位于不同的整数位置,Farmer John想要移动她们,使得她们占据N个相邻的位置(例如,位置6、7、8)。 不幸的是,奶牛们现在很困,Farmer John要让她们集中精力听从命令移动并不容易。任意时刻,他只能使得一头处在“端点”(在所有奶牛中位置最小或最大)位置的奶牛移动。当他移动奶牛时, 阅读详情

相关推荐

linux离线安装nginx

linux离线安装nginx

zhang_130914036的博客 9349

MOO解题报告

Farmer John has received a noise complaint from his neighbor, Farmer Bob, stating that his cows are making too much noise. FJ’s N cows (1 &lt;= N &lt;= 10,000) all graze at various locations on a long...

qq_43632898的博客 400

保姆级教学:从0搭建微信小程序SpringBoot+Vue(一)

目标:实现一个微信小程序从后端数据库MySQL获取的商品展示页。 框架:后端采用SpringBoot,前端采用Vue,数据库MySQL。 部署工具:IntelliJ IDEA 2024.2专业版+HbuilderX+Node+微信开发者工具,jdk1.8已安装

weixin_44545610的博客 4927

安全逃离的题解

也农夫john最近在研究如果发生重大事故,如何让农场里的奶牛逃离问题。他想要确信在紧急情况下,所有的奶牛都有一个安全逃离方案。因为在紧急情况下,奶牛们都会失去观察和判断能力,所以最近john一直在教奶牛们逃离的方法,他的方法很简单,就是任何时候都只向北方或东方逃离,北方是行坐标减1的方向,东方是列坐标加1的方向。奶牛们虽笨,不过这一点事关自己的生命,所以他们牢记在心,而且也一定会这么做。 当然也...

ZHK's blog 682

MCNP 减方差技巧(最全)

MCNP的减方差技巧,核心在于不显著增加计算时间的前提下,通过修改模拟过程来降低结果的统计误差。尤其适用于,这类问题中粒子很难到达探测器区域,直接模拟效率极低栅元重要性是常用的减方差技巧,该方法主要对计算模型的不同区域定义不同的重要性数值。当粒子从重要性低的区域废物重要性高的区域,产生更多粒子,增大统计量;当从重要性高的区域进入重要性低的区域,会进行,增快计算效率。n= 中子,N;光子,P;电子 Exi= 栅元i的重要性I=栅元总数项目IMP卡是必须的,除非使用了WWN卡如果粒子进入0。

chencheng1127的博客 926

文献计量VOSviewer分析知网文献基本操作及实用技巧

本教程旨在为读者提供一个关于VOS viewer的初级使用指南。VOS viewer是一个强大的科学研究可视化工具,主要用于构建和可视化科学地图。它能够处理大规模的科研数据,包括文献引用、共引、共词、共作者等信息。无论你是科研人员,还是数据分析师,甚至是研究生,都能在这个教程中找到使用VOS viewer的有效方法。我们将一步步教你如何使用这个软件,以及如何利用它进行科研数据的可视化。

Jia_n的博客 8768

[bzoj5192][Usaco2018 Feb][LCT]New Barns

Description FarmerJohn注意到他的奶牛们如果被关得太紧就容易吵架,所以他想开放一些新的牛棚来分散她们。每当FJ建造一 个新牛棚的时候,他会将这个牛棚用至多一条双向道路与一个现有的牛棚连接起来。为了确保他的奶牛们足够分散 ,他有时想要确定从某个特定的牛棚出发,到它能够到达的最远的牛棚的距离(两个牛棚之间的距离等于从一个牛 棚出发到另一个之间必须经过的道路...

Rose_max的博客 580

Yield Management软件:Lam Research二次开发_(5).缺陷分析与分类方法

在半导体制造过程中,缺陷分析和分类是提高良率管理(Yield Management)的关键步骤。通过准确地识别和分类缺陷,可以更好地理解工艺过程中的问题,从而采取有效的措施来提高生产效率和产品质量。本节将详细介绍缺陷分析和分类的方法,包括缺陷检测、特征提取、分类算法及其在Lam Research软件中的应用。

2401_87715305的博客 690

[USACO24JAN]2024一月铜组1,3题题解

[USACO24JAN]2024一月铜组1,3题题解

m0_60958303的博客 2446

《用 Python 爬取统计局年鉴:从 API 抓取到结构化分析,实战全流程详解》

在数据分析、经济研究、商业决策中,国家统计局发布的年鉴数据具有权威性和参考价值。本篇博客将带你从零实践:了解目标、设计爬虫、抓取年度数据、解析 JSON、保存结构化数据、并用 Pandas 简要分析可视化,且使用现代 Python 最佳实践(如httpx、pydantic、typer 等),提升代码质量与效率。如何抓取国家统计局年鉴数据;利用 API 方式高效获取;使用现代异步 Python 提升性能;将数据结构化输出;结合 CLI、类型校验和简单分析技术提升实用性。

2201_76125261的博客 1085

openssl命令数据摘要详解(SM3、sha256、MD5、dss1、mdc2、ripemd160)

SM3是由中国密码学家设计的密码哈希函数,是中国国家密码管理局(National Cryptographic Authority,简称:CNCA)颁布的国家密码算法标准。SM3属于密码杂凑函数家族,它可以计算任意长度的消息并生成固定长度(256比特,即32字节)的哈希值。SM3生成的哈希值长度为256比特(32字节),不管输入消息的长度如何,输出始终是固定的。SM3将输入数据划分为512比特(64字节)的分组,并对每个分组进行处理。

N阶二进制的博客 4461

牛客2024年除夕娱乐赛(题解)

牛客2024年除夕娱乐赛(题解)

ros275229的博客 656

《UDS协议从入门到精通》系列——图解0x85:控制DTC的设置

如何让ECU停止或恢复DTC状态位更新?有哪些注意点?图解+示例教你快速上手UDS 0x85服务!!

车载系统攻城狮 3864

bzoj5192 [Usaco2018 Feb]New Barns

http://www.elijahqi.win/2018/03/06/bzoj5192-usaco2018-febnew-barns/ Description FarmerJohn注意到他的奶牛们如果被关得太紧就容易吵架,所以他想开放一些新的牛棚来分散她们。每当FJ建造一 个新牛棚的时候,他会将这个牛棚用至多一条双向道路与一个现有的牛棚连接起来。为了确保他的奶牛们足够分散 ,他有时想要确...

Elijahqi 899

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

bzoj5192 [Usaco2018 Feb]New Barns(动态点分治)

考试时傻掉了qaq,虽然是不断加点,但是没有强制在线,我们可以离线做,把树的形态先搞出来,然后对最终的树形态直接点分治,建出重心树,然后考虑每次的加点操作为激活这个点即可。 考虑我们如何找到距x最远的激活点,假设当前根为c。则答案就是x距c的距离再加上c的不含x的子树中最深的点的距离。如何维护不含x这个要求呢?我们对每个节点记最深的点mx,最深的点所在子树mxid,和不在mxid子树中的次深的点m

Icefox的博客 965

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

bzoj5192: [Usaco2018 Feb]New Barns

不想写看zory大佬 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; int dep[1100...

weixin_30725467的博客 135

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C++工程师养成 每日一题(VECTOR使用)

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3 一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3 一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2 为了让...

weixin_45853151的博客 368

Farmer John的故事

从前有个农民,名字叫约翰,于是大家叫他Farmer John(FJ)。FJ养了很多奶牛,这些奶牛很聪明,它们很喜欢看自然科学和数学书,但是它们对书的ISBN码感到奇怪,于是就有了ISBN问题。渐渐的,奶牛们的书多了起来,于是它们决定买背包来放书,然后就有了背包问题。奶牛们又喜欢上了下棋,于是就有了过河卒与骑士巡游问题。奶牛们决定航海去增长见识,在途中它们参与了对一艘名叫铁达尼克号的船的营救。最后,...

tystrwor的博客 6958

2018.12.12【BZOJ5192】【洛谷P4271】New Barns(LCT维护直径)

BZOJ传送门 洛谷传送门 解析: 许久没有写LCT,手都有点生了。 思路: 这道题是显然的需要维护直径的,因为有结论,树上距离一个点的最远点一定是某个直径的端点。证明很显然,就不证了。 那么怎么维护动态的直径呢? 我们可以用LCT维护一个森林,对于每棵树记录直径的两个端点,加入一个新点的时候更新,我们有如下结论:新的直径与原来直径至少有一个端点重合。 那么LCT乱搞一波就做完了。 代码: #...

zxyoi_dreamer的博客(不定期诈尸) 545

【OJ比赛日历】快周末了,不来一场比赛吗? #11.11-11.17 #12场

实时聚合多平台的(Kaggle、天池…)和(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注!以下信息仅供参考,以比赛官网为准。

CompHub的博客 385

牛客挑战赛60题解

牛客挑战赛60题解

欢迎您的光顾awa 1089

牛客2025年愚人节比赛

来源:牛客网。

2301_80079117的博客 1660

牛客周赛63部分题解

【代码】牛客周赛63部分题解。

song0789的博客 476

牛客竞赛记录——小紫的劣势博弈

来源:牛客网。小紫的劣势博弈

2401_89874225的博客 538

信息学竞赛有什么好的比赛网站?

1、HustOJ MYOJ 热心家长创建的一个自测 OJ,与华中科技大学颇有渊源。不定期举办一些针对初学者的比赛。菜鸟们不妨一试。 2、信奥题库 信奥题库https://www.oitiku.com/ 3、计蒜客 www.jisuanke.com 课程要付费,但是月赛和题库是免费的,判题速度快,手感还不错 计蒜客比赛 比赛 - 计蒜客计蒜客比赛平台为广大选手提供ACM、ICPC网络赛,NOIP普及组和提高组模拟赛,蓝桥杯省赛、国赛模拟赛,并承接各种商业比赛,是竞赛党练习、参赛的专业

青少年趣味编程 1万+

牛客竞赛语法入门班选择结构习题代码整理

牛客竞赛语法入门班选择结构习题代码整理

沐遥的博客 1594
上一篇: [2018.07.21 T2] 离家出走
下一篇: BZOJ2565 最长双回文串
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值