Codeforces 765E. Tree Folding

Codeforces++-crx插件 语言:English Codeforces扩展包 是否曾经想让Codeforce拥有方便的快捷键,自动更新排行榜,可以按需隐藏/显示的问题标签,更好的站点导航,深色主题或以上所有功能? 这些和更多功能可以在Codeforces ++中获得! 该扩展是开源的,托管在GitHub https://github.com/LeoRiether/CodeforcesPP 立即下载

题目
题解
题意:给你一棵树,可以在这棵树上进行若干次操作,每次操作可以把两条长度相同的链,根据一个中点合并在一起。然后问你经过若干次合并之后,最后的最短链长度是多少

Solution

先从节点1开始dfs。
对于每一个节点,用一个set记录:以该点为根的子树的深度。
a) 如果此节点的某个子节点打出了GG,则此节点直接打出GG。
b) 若set的元素个数<=1,那么,以该点为根的子树,显然是可以
缩成一条链滴!且该点为链的端点。
c) 若set元素个数=2,以该点为根的子树,也可以收缩成一条链,
且该点不是链的端点。此时,我们继续分类讨论。
  i) 该点没有父亲。我们成功找到了一条链~岂不美哉。
  ii) 该点有父亲,那么在链上会长出一根奇怪的东西。那我们赶紧报警,把该点赋给root,并打出GG
d)若set中元素个数>2,直接打出GG!
如果从1开始dfs求索未得,那一定是root的打开方式不对。我萌以root为起点再来一遍dfs。
如果还不行,那就真GG。

Code

#include<bits/stdc++.h>
using namespace std;
const int N=200002;
struct node{
	int to,ne;
}e[N<<1];
int n,i,x,y,s,rt,h[N],tot;
inline char gc(){
	static char buf[100000],*p1=buf,*p2=buf;
	return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
inline int rd(){
	int x=0,fl=1;char ch=gc();
	for (;ch<48||ch>57;ch=gc())if(ch=='-')fl=-1;
	for (;48<=ch&&ch<=57;ch=gc())x=(x<<3)+(x<<1)+(ch^48);
	return x*fl;
}
inline void wri(int a){if(a<0)a=-a,putchar('-');if(a>=10)wri(a/10);putchar(a%10|48);}
inline void wln(int a){wri(a);puts("");}
int dfs(int u,int fa){
	set<int>S;
	for(int i=h[u],v;i;i=e[i].ne)
		if ((v=e[i].to)!=fa){
			int t=dfs(v,u);
			if (t==-1) return -1;
			S.insert(t+1);
		}
	if (S.size()>2) return -1;
	if (!S.size()) return 0;
	if (S.size()==1) return *S.begin();
	if (S.size()==2 && !fa) return *S.rbegin()+*S.begin();
	rt=u;
	return -1;
}
void add(int x,int y){
	e[++tot]=(node){y,h[x]};
	h[x]=tot;
}
int main(){
	n=rd();
	for (i=1;i<n;i++) x=rd(),y=rd(),add(x,y),add(y,x);
	s=dfs(1,0);
	if (s==-1 && rt) s=dfs(rt,0);
	printf("%d",s/(s&-s));
}
CodeForces Filter-crx插件 语言:English 删除低额定用户的评论。 在弹出菜单中选择颜色,Color 隐藏在codeforces.com上的低额定用户的评论。 在弹出菜单中选择颜色,将隐藏颜色 立即下载

相关推荐

Codeforces增强剂「Codeforces Enhancer」-crx插件

使Codeforces变得更好:多个评级图,彩色的排名,添加“隐藏/显示解决的问题”链接。 Chrome扩展程序使Codeforces更好:支持多个评分图表,通过使用的编程语言对排名进行着色,在“问题集”页面添加“隐藏/显示已解决的问题”链接 支持语言:English

Codeforces Round #397 E. Tree Folding (树形dp)

E. Tree Folding time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output Vanya wants to minimize a tree. He can perf

LzyRapX 1132

Codeforces Practice Tracker-crx插件

语言:English 在Codeforce上跟踪您的练习进度。 对于任何有竞争力的程序员来说,Codeforces都是最无能为力的网站之一。 借助此扩展,您可以跟踪各个时间段在Codeforce中的练习进度,它只是向该配置文件(或任何其他配置文件)添加新标签,在此标签中您可以找到有关每个时间阶段的数据。 时间阶段是一段时间(例如7天),因此当前阶段是过去7天,上一阶段#1是过去7天,依此类推。 对于每个时间阶段,它都显示:-已解决问题的数量。 -提交数量。 -您解决的最困难(最大额定)问题。 -您所解决问题的比率的平均值。 -您参加的比赛和虚拟表演的数量。 -提交的静态信息。 注意:仅在解决的问题和提交的数量中考虑体育馆问题和未分级的问题。 更多功能:-显示每个阶段并将其与上一个阶段进行比较。 -跳过不活动的阶段。 -更改每个阶段的天数。 -显示每个阶段中已解决问题的列表。 对于想不断更新其受训者的培训者来说,它也很有用。

CodeForces 765 E.Tree Folding(树形DP)

Description 给出一棵nnn个节点的树,每次操作可以选择树上一点vvv,把两条不相交的单链合并,即把v,a1,...,akv,a1,...,akv,a_1,...,a_k和v,b1,...,bkv,b1,...,bkv,b_1,...,b_k合并成v,a1,...,akv,a1,...,akv,a_1,...,a_k,其中a1,...,ak,b1,...,bka1,...,ak,b1,...

ZSQ 372

AI自主网络攻击技术深度解析:从LLM驱动到防御体系升级

网络安全领域正经历从自动化脚本到智能自主攻击的范式转变。其核心原理在于将大型语言模型(LLM)与自动化渗透测试框架深度融合,构建具备环境感知、决策规划和自适应能力的攻击系统。这种技术的核心价值在于实现了从预设步骤到目标驱动的质变,能自主完成信息收集、漏洞利用、横向移动等复杂攻击链。在应用场景上,它不仅能极大提升高级持续性威胁(APT)的攻击效率,也对渗透测试和红队演练技术提出了新的要求。面对此类由AI驱动的自主攻击,传统的基于签名的防御体系已显不足,必须转向以行为分析和零信任为核心的整体纵深防御。本次曝光的

weixin_34254464的博客 606

滞回比较器电路详细分析

滞回比较器是一种用于检测两个不同电压值并使比较器输出高电平或低电平的电路。滞回比较器的特点是具有迟滞特性,即当输入电压高于某一阈值时,比较器输出高电平,当输入电压低于另一阈值时,比较器输出低电平,而在这两个阈值之间,比较器的输出保持不变。比较器通常有两个模拟电压输入端UIN+和UIN-以及一个数字状态输出端UOUT。当UIN+大于UIN-时,UOUT为高电平;当UIN+小于UIN-时,UOUT为低电平。根据具体的系统定义,这两种电位的具体数值可以有所不同。

LuDvei的博客 2万+

CodeForces 765E. Tree Folding

题面:Tree Folding time limit per test : 2 seconds memory limit per test : 512 megabytes input : standard input output :standard output Vanya wants to minimize a tree. He can perform the following

笔记 684

原理图转PCB

本文讲述了原理图的编译、原理图转PCB的步骤和易错点。

m0_58083051的博客 3292

【操作与配置】Codeforces翻译(汉化)插件

Codeforces是一个在线的算法竞赛和训练平台,提供来自不同难度级别的编程竞赛和题目,以帮助编程爱好者提高算法和编程能力。它也提供了一个社区和博客,用户可以在平台上相互交流和分享经验。Codeforces也举办各种规模的编程比赛,包括团队比赛和个人比赛。

2303_80346267的博客 2万+

尝试使用CubeMX做stm32开发之九:SYS配置

参考《STM32中文参考手册_V10》,研究CubeMX中有关SYS的配置

Forster-C的博客 9421

ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory解决方案

本文主要介绍了ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

打CodeForces时一款好用的vscode插件,如何使用 如何更好地使用

目录插件名称如何下载如何使用合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 插件名称 Codeforces Bot 如何下载 直接在vscode中搜索安装即可 如何使用 安装完成后,会多出这个插件 [Codeforces Bot]

<font color="Pink">Tisfy的博客</font> 3万+

go语言实现服务器server端与客户client端即时通信(附完整源码)

go语言实现服务器server端与客户client端即时通信(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 629

CodeForces-765E Tree Folding

题目链接:CodeForces-765E Tree Folding 题意 给出一棵树,若两条链具有同一个端点、长度相同、并且每个链上结点不能邻接有不属于这条链的结点(除了那个相同的端点),则这两条链可以在一次操作中合并在一起,如下图。问若干次操作之后是否能令这棵树变成一条链,能的话这条链最短是多长。 思路 如果最终能合并成一条链,说明链上结点原有的分支都是相同长度,能合并...

weixin_30699465的博客 153

LSTM 双向 Bi-LSTM

LSTM 双向 Bi-LSTM

jacke121的专栏 1518

UNet 改进(19):与ASPP结合的图像分割模型

这个代码实现了一个改进版的UNet模型,在传统的UNet架构基础上,引入了ASPP模块来增强模型捕获多尺度上下文信息的能力。​​UNet主干网络​​:经典的编码器-解码器结构,带有跳跃连接​​ASPP模块​​:位于瓶颈层,用于提取多尺度特征。

2401_82355416的博客 879

【codeforces 765E】Tree Folding

【题目链接】:http://codeforces.com/problemset/problem/765/E 【题意】 给你一棵树; 可以把一个节点的两条相同长度的链合并成一条链; 且这两条相同长度的链上的点不能有“分叉”; 问你最后是否能形成一条链; 然后让你求链的最短值; 【题解】 dfs; 类似树形DP的东西; 对于每个节点x; 看...

AWCXV 115

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Codeforces 765E. Tree Folding 题目详解+错点记录

RT,这是一道题。。。

Renatus的博客 1054

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Codeforces 765 E. Tree Folding

题目链接:http://codeforces.com/problemset/problem/765/E $DFS子$树进行$DP$ 大概分以下几种情况:   1.为叶子,直接返回。   2.长度不同的路径长度只有一条,显然可以合并成这一条的长度。   3.长度不同的路径长度有两条,并且这个点为根,显然可以合并成这两条的长度和。   4.其他的都不合法。 注意:事实上如果第一...

weixin_30692143的博客 80

NTscan扫描工具

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

Codeforces Round #397 765E - Tree Folding

E. Tree Folding time limit per test2 seconds memory limit per test512 megabytes inputstandard input outputstandard output Vanya wants to minimize a tree. He can perform the following operation multipl...

weixin_44090305的博客 1651

codeforces 765 E Tree Folding

传送门 题意:给你一棵树,如果有两条完全相同的链存在则可以关于中间进行折叠,即合成一条链,问你最后剩下的最少的边有多少。不能合并则输出-1 题解:dfs处理,对每一个节点开一个set记录儿子链的长度,如果只有一种长度(可能出现两种情况,一种就是有多条链,但是长度都相同,或者只有一条链但是他们不管是合并还是留下来长度都是这个长度)因此则直接合并返回该长度,如果没有长度,说明dfs到底了返回0,如...

weixin_34257076的博客 116
上一篇: 51nod1451 合法三角形
下一篇: Codeforces 718D. Andrew and Chemistry
蜗角虚名羊
博客等级 码龄9年 35粉丝 225原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值