news 2026/4/16 3:22:47

小红的树上删边【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小红的树上删边【牛客tracker 每日一题】

小红的树上删边

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

小红拿到了一棵树,她希望删除一些边,使得每个连通块的大小是偶数。请你帮小红计算最多删除多少条边。

请python同学加上以下扩栈代码并使用python3提交,不要用pypy3!或者使用非递归做法。

sys.setrecursionlimit(200000)

输入描述:

第一行输入一个正整数n nn,代表树的节点数量。
接下来的n − 1 n−1n1行,每行输入2 22个正整数u , v u,vu,v,代表节点u uu和节点v vv有一条边连接。
1 ≤ n ≤ 10 5 1≤n≤10^51n105
1 ≤ u , v ≤ n 1≤u,v≤n1u,vn

输出描述:

如果无解,请输出− 1 -11
否则输出一个整数,代表可以删除的最多边数。

示例1

输入:

4 1 2 2 3 3 4

输出:

1

说明:

删除2 − 3 2-323这条边即可。

示例2

输入:

3 1 2 2 3

输出:

-1

解题思路

首先判断树的总节点数n是否为奇数,若是则无法分割为多个偶数大小的连通块,直接输出− 1 -11;若n nn为偶数,先构建树的邻接表,通过D F S DFSDFS从根节点1 11遍历整棵树,计算每个节点为根的子树大小s z [ i ] sz[i]sz[i](初始s z [ t ] = 1 sz[t]=1sz[t]=1,累加所有子节点的s z szsz值);随后遍历除根节点外的所有节点,统计其子树大小为偶数的数量,该数量即为可删除的最多边数(删除该节点与父节点的边后,子树成为独立的偶数大小连通块,且此统计方式能保证删边数最大化);该方法通过D F S DFSDFS高效计算子树大小,时间复杂度为O ( n ) O(n)O(n),适配n nn1 e 5 1e51e5的规模,先排除无解场景,再精准统计符合条件的边数,得到最多可删除的边数。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;constll M=1e6+10;ll h[N],e[M],ne[M],idx=0;ll sz[N];voidinit(ll n){for(ll i=1;i<=n;i++)h[i]=-1;}voidadd(ll a,ll b){e[idx]=b;ne[idx]=h[a];h[a]=idx++;}voiddfs1(ll t,ll r){sz[t]=1;for(ll i=h[t];i!=-1;i=ne[i]){ll x=e[i];if(x==r)continue;dfs1(x,t);sz[t]+=sz[x];}}intmain(){ll n;cin>>n;init(n);for(ll i=1;i<n;i++){ll a,b;cin>>a>>b;add(a,b);add(b,a);}if(n%2){cout<<-1<<endl;return0;}dfs1(1,0);ll ans=0;for(ll i=2;i<=n;i++){if(sz[i]%2==0)ans++;}cout<<ans<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:05:45

对比测评:TensorRT vs TorchScript vs OpenVINO推理表现

推理引擎三巨头&#xff1a;TensorRT、TorchScript 与 OpenVINO 深度对比 在当前 AI 模型从实验室走向产线的过程中&#xff0c;推理效率已成为决定系统成败的关键瓶颈。一个在训练时表现优异的模型&#xff0c;若无法在实际场景中实现低延迟、高吞吐的稳定推理&#xff0c;其商…

作者头像 李华
网站建设 2026/4/16 14:03:47

机器学习数据集完全指南:从公开资源到Sklearn实战

机器学习数据集完全指南&#xff1a;从公开资源到Sklearn实战1. 引言&#xff1a;为什么数据集如此重要&#xff1f;2. 机器学习公开数据集大全2.1 综合型数据集平台2.2 领域特定数据集3. Sklearn内置数据集详解3.1 小型玩具数据集3.2 大型真实世界数据集3.3 完整列表4. Sklear…

作者头像 李华
网站建设 2026/4/16 16:04:05

避免踩坑:TensorRT模型转换常见错误及解决方案

避免踩坑&#xff1a;TensorRT模型转换常见错误及解决方案 在如今的AI部署场景中&#xff0c;训练一个高精度模型只是第一步。真正决定产品成败的&#xff0c;往往是推理阶段的表现——延迟是否足够低&#xff1f;吞吐量能否支撑业务高峰&#xff1f;功耗是否适合边缘设备&…

作者头像 李华
网站建设 2026/4/16 13:32:19

数据建模如何助力企业大数据战略落地?

数据建模:企业大数据战略落地的底层逻辑与实践指南 一、引言:为什么说数据建模是大数据战略的“地基”? 你是否遇到过这样的场景? 企业花了大价钱搭建了大数据平台,却发现数据分散在各个系统(ERP、CRM、线下POS、线上电商),像“数据孤岛”一样,无法整合分析; 业务部…

作者头像 李华
网站建设 2026/4/16 13:32:05

开源模型也能高性能运行?TensorRT给你答案

开源模型也能高性能运行&#xff1f;TensorRT给你答案 在自动驾驶的感知系统中&#xff0c;每毫秒都关乎安全&#xff1b;在电商推荐的搜索框背后&#xff0c;用户期待的是“秒出”结果。而支撑这些实时智能服务的&#xff0c;往往是动辄数百层的深度神经网络——它们在训练时依…

作者头像 李华