news 2026/5/1 1:49:36

小红的树上删边【牛客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/5/1 6:12:50

TensorRT与ONNX协同工作流程最佳实践

TensorRT与ONNX协同工作流程最佳实践 在现代AI系统部署中&#xff0c;一个训练好的模型从实验室走向生产环境&#xff0c;往往面临“性能悬崖”&#xff1a;在PyTorch或TensorFlow中表现良好的模型&#xff0c;一旦进入实际推理场景&#xff0c;延迟高、吞吐低、资源占用大等问…

作者头像 李华
网站建设 2026/5/1 6:07:41

一文搞懂TensorRT层融合技术对模型推理的影响

TensorRT层融合技术深度解析&#xff1a;如何重塑模型推理性能 在当今AI系统从实验室走向真实世界的进程中&#xff0c;推理效率已成为决定成败的关键瓶颈。一个准确率高达95%的视觉识别模型&#xff0c;若单次推理耗时超过100毫秒&#xff0c;在实时视频分析场景中便毫无用武…

作者头像 李华
网站建设 2026/4/23 10:36:35

GPU利用率不足?TensorRT帮你榨干每一滴算力

GPU利用率不足&#xff1f;TensorRT帮你榨干每一滴算力 在AI模型部署一线&#xff0c;你是否遇到过这样的尴尬&#xff1a;明明用的是A100、H100这种顶级GPU&#xff0c;监控工具却显示算力利用率长期徘徊在40%以下&#xff1f;推理延迟居高不下&#xff0c;吞吐量上不去&#…

作者头像 李华
网站建设 2026/5/1 6:07:28

AI创业公司必看:如何用TensorRT降低90%推理成本

AI创业公司必看&#xff1a;如何用TensorRT降低90%推理成本 在AI模型从实验室走向真实用户场景的过程中&#xff0c;一个残酷的现实摆在许多初创团队面前&#xff1a;训练好的模型跑得通&#xff0c;但“推不动”。 你可能在本地测试时看到完美的准确率&#xff0c;但在生产环境…

作者头像 李华
网站建设 2026/4/29 3:56:21

基于大数据的图书管理分析及可视化系统(毕设源码+文档)

课题说明 本课题聚焦基于大数据的图书管理分析及可视化系统的设计与实现&#xff0c;旨在解决传统图书管理中数据分散、借阅规律难把握、馆藏资源调配低效、读者需求匹配不精准等痛点&#xff0c;依托大数据技术整合图书馆多源数据并实现直观化呈现&#xff0c;为图书馆管理员、…

作者头像 李华
网站建设 2026/5/1 7:16:33

AI原生应用领域:增量学习的核心原理与应用场景

AI原生应用领域&#xff1a;增量学习的核心原理与应用场景关键词&#xff1a;增量学习、AI原生应用、持续学习、灾难性遗忘、小样本适应、动态模型更新、在线学习摘要&#xff1a;在AI原生应用&#xff08;以AI为核心设计的应用&#xff09;中&#xff0c;传统“一次性训练静态…

作者头像 李华