P13555 【MX-X15-T2】系绳绳
记录162#includebits/stdc.h // 引入万能头文件包含所有常用的标准库 using namespace std; // 使用标准命名空间 int main(){ // 主函数入口 ios::sync_with_stdio(false); // 关闭cin与stdio的同步加快输入输出速度 cin.tie(0); // 解除cin与cout的绑定进一步加快IO效率 int t; // 定义变量t表示数据的组数 cint; // 输入数据组数t while(t--){ // 循环处理每一组测试数据 int n; // 定义变量n表示当前这组数据树的节点总数 cinn; // 输入节点数n if(n1){ // 特判如果只有一个节点不需要任何操作 cout0\n; // 输出0 continue; // 跳过当前循环处理下一组数据 } vectorint degree(n1,0); // 定义度数组用vector动态分配degree[i]记录节点i的度数初始化为0 for(int i1;in-1;i){ // 循环n-1次读入树的每一条边 int u, v; // 定义临时变量u和v代表一条边连接的两个节点 cinuv; // 输入一条边的两个端点 degree[u]; // 节点u的度数加1 degree[v]; // 节点v的度数加1 } int leaf_count0; // 定义变量leaf_count用来统计叶子节点度数为1的节点的总数 for(int i1;in;i){ // 遍历从1到n的每一个节点 if(degree[i]1){ // 如果当前节点的度数为1说明它是叶子节点 leaf_count; // 叶子节点计数加1 } } // 根据结论最少操作次数 叶子节点数量 - 1 coutleaf_count-1\n; // 输出最终答案 } return 0; // 主函数正常结束返回0 }题目传送门https://www.luogu.com.cn/problem/P13555前言我是一名专注信奥赛GESP、CSP-J/S的教练。如果你觉得这篇题解对你有帮助欢迎点击关注我的CSDN账号我会持续更新高质量算法解析。我深知算法思维的构建远比单纯通过题目更重要本系列题解不局限于AC代码的堆砌而是致力于拆解题目背后的逻辑链条与核心知识点备赛路上若遇瓶颈欢迎随时评论或私信我将甄选典型疑难问题通过视频讲解或撰写专项文章的形式为你提供深度答疑。核心解题思路这道题是一道非常经典的图论树的性质与数学推导问题。问题转化树与叶子节点题目给出了一个包含 n 个节点的树。每次操作选择一个根节点会在所有祖先-后代节点对之间连边。如果我们把树看作一个图那么一次操作实际上是把以该节点为根时树上所有的“祖先-后代”路径都覆盖上了绳子。通过数学推导和观察可以发现要让树上所有的节点对都被覆盖最少需要的操作次数与树的叶子节点数量直接相关。算法设计统计叶子节点在树中叶子节点是指度数为 1 的节点只有一个邻居。根据本题的结论最少操作次数等于叶子节点的数量减去 1。因此我们的算法非常简单读入所有的边统计每个节点的度数最后数一数度数为 1 的节点有多少个将其减 1 输出即可。代码分块详细解释1. 头文件、IO 优化与变量定义#includebits/stdc.h // 引入万能头文件包含所有常用的标准库 using namespace std; // 使用标准命名空间 int main(){ // 主函数入口 ios::sync_with_stdio(false); // 关闭cin与stdio的同步加快输入输出速度 cin.tie(0); // 解除cin与cout的绑定进一步加快IO效率 int t; // 定义变量t表示数据的组数 cint; // 输入数据组数t详细分析由于题目中数据组数 tt 最大可达 2×10^4 总节点数 ∑n≤2×10^5 输入输出量较大因此必须加上ios::sync_with_stdio(false);和cin.tie(0);进行 IO 加速防止程序因 IO 瓶颈超时。2. 边界处理与树的读入while(t--){ // 循环处理每一组测试数据 int n; // 定义变量n表示当前这组数据树的节点总数 cinn; // 输入节点数n if(n1){ // 特判如果只有一个节点不需要任何操作 cout0\n; // 输出0 continue; // 跳过当前循环处理下一组数据 } vectorint degree(n1,0); // 定义度数组用vector动态分配degree[i]记录节点i的度数初始化为0 for(int i1;in-1;i){ // 循环n-1次读入树的每一条边 int u, v; // 定义临时变量u和v代表一条边连接的两个节点 cinuv; // 输入一条边的两个端点 degree[u]; // 节点u的度数加1 degree[v]; // 节点v的度数加1 }详细分析边界特判当 n1n1 时树上只有一个节点不存在任何节点对因此不需要操作直接输出 0。度数统计使用vectorint degree(n1, 0)动态分配度数组节省内存。对于树来说有 n 个节点就有 n−1n−1 条边。每读入一条边 (u,v) 就将 u 和 v 的度数各加 1。3. 核心逻辑统计叶子节点与输出答案int leaf_count0; // 定义变量leaf_count用来统计叶子节点度数为1的节点的总数 for(int i1;in;i){ // 遍历从1到n的每一个节点 if(degree[i]1){ // 如果当前节点的度数为1说明它是叶子节点 leaf_count; // 叶子节点计数加1 } } // 根据结论最少操作次数 叶子节点数量 - 1 coutleaf_count-1\n; // 输出最终答案 } return 0; // 主函数正常结束 }详细分析叶子节点判定遍历所有节点如果degree[i] 1说明该节点只与一个节点相连即为叶子节点。输出答案根据图论推导最少操作次数为leaf_count - 1。例如样例 1 中叶子节点为 1 和 3共 2 个答案为 2−11 样例 2 中叶子节点为 2, 3, 5共 3 个答案为 3−12。核心逻辑总结表代码模块核心变量/操作精炼作用解决的痛点IO 加速ios::sync_with_stdio(false)关闭 C 与 C 标准流同步应对 2×1052×105 级别的大量输入输出防止超时边界特判if(n1)单独处理只有一个节点的情况避免 n1n1 时叶子节点数为 1导致输出 0 的逻辑错误度数统计degree[u]; degree[v]读入边时同步更新两端点的度数无需真正建树仅通过度数即可获取树的结构信息叶子节点统计if(degree[i]1)遍历所有节点统计度数为 1 的节点数找到了决定最少操作次数的关键变量公式输出cout leaf_count-1应用推导出的数学结论将复杂的图论问题转化为简单的数学计算时间复杂度仅为 O(n)O(n)

相关新闻

Linux 驱动-i2c工具篇

Linux 驱动-i2c工具篇

提示:Linux 驱动-i2c工具篇 文章目录前言一、资料参考二、开发工具下载-安装下载方式安装安装-使用思路下载对应版本-准备安装包二、工具使用i2cdetect基础原理(1) i2cdetect -V: 输出版本信息(2) i2cdetect -l: 列出所…

2026/7/29 9:17:12阅读更多 →
从比特币到Web3:一场关于信任的“操作系统”升级

从比特币到Web3:一场关于信任的“操作系统”升级

从比特币到Web3:一场关于信任的“操作系统”升级 磐链科技:2008年,当中本聪在密码朋克邮件列表中抛出那篇著名的白皮书时,恐怕连他自己也未曾预料到,这项旨在解决“双花问题”的技术实验,会在随后的十几年里…

2026/7/29 9:17:12阅读更多 →
VC++中创建多级目录的完整实现与最佳实践

VC++中创建多级目录的完整实现与最佳实践

1. 项目概述:为什么“创建多级目录”是VC开发者的基本功 在Windows平台下用VC做开发,无论是写一个需要保存日志的小工具,还是一个需要管理用户配置文件的桌面应用,甚至是开发一个游戏引擎来组织资源文件,你几乎都绕不开…

2026/7/29 9:17:12阅读更多 →
拼多多新店0基础起量:基础销量+评价积累全攻略

拼多多新店0基础起量:基础销量+评价积累全攻略

## 前言做过拼多多的运营都清楚,新店最大的痛点不是没流量,而是有流量没转化。新店铺、新链接无销量、无评价、无权重,平台自然不会推送自然流量,即便少量访客进店,用户也会因为零销量、零评价不敢下单,最终…

2026/7/29 10:33:31阅读更多 →
仿冒 Snap 官方社工钓鱼隐私窃取攻击攻防与法律规制研究

仿冒 Snap 官方社工钓鱼隐私窃取攻击攻防与法律规制研究

摘要 2026 年 7 月美国法院对 Kyle Svara 作出 76 个月监禁判决,该案完整呈现定向女性群体的 Snapchat 专属社工钓鱼攻击链路:攻击者伪装 Snap 官方工作人员发送短信,诱导受害者提供登录验证码,累计窃取 570 名女性用户账号&…

2026/7/29 10:33:31阅读更多 →
面向现代 Web 平台的 CNN-LSTM 混合深度学习钓鱼检测系统研究

面向现代 Web 平台的 CNN-LSTM 混合深度学习钓鱼检测系统研究

摘要 传统基于规则、黑名单的网络钓鱼检测手段存在更新滞后、零日钓鱼样本识别能力不足的固有缺陷,无法适配当前攻击者快速迭代仿冒站点、混淆 URL 的攻击模式。本文以 Mahathi Kari 提出的混合深度学习检测思路为核心理论基础,依托 PhishTank 公开标注 …

2026/7/29 10:33:31阅读更多 →
Arduino 101 IMU开发全攻略:从数据采集到姿态解算实战

Arduino 101 IMU开发全攻略:从数据采集到姿态解算实战

1. 项目概述与核心价值 如果你手头有一块 Arduino/Genuino 101 开发板,却只用来点个灯、读个按键,那可就太浪费它内置的那颗“运动之心”了。这块板子之所以在当年备受关注,核心就在于它集成了 Intel Curie 模块,自带一个功能完整…

2026/7/29 10:33:31阅读更多 →
Snyk CLI实战指南:从精准漏洞扫描到CI/CD集成,实现开发安全左移

Snyk CLI实战指南:从精准漏洞扫描到CI/CD集成,实现开发安全左移

1. 项目概述:为什么开发者需要自己的安全扫描工具链在今天的开发流程里,安全左移已经从一个时髦的概念变成了生存必需品。我见过太多团队,直到上线前最后一刻才把代码丢给安全部门做黑盒扫描,结果就是项目延期、紧急打补丁、甚至带…

2026/7/29 10:33:31阅读更多 →
2023年AI智能语音鼠标选购指南与技术解析

2023年AI智能语音鼠标选购指南与技术解析

1. AI智能语音鼠标市场现状解析过去一年里,AI语音交互外设市场迎来了爆发式增长。根据第三方调研数据显示,2023年智能鼠标品类销量同比增长240%,其中语音交互功能成为消费者最关注的卖点。这类产品通过深度整合语音识别、自然语言处理等AI技术…

2026/7/29 10:31:31阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“! 在构建复杂的 Agent 系统时,我们经常会遇到这样的场景:Agent 正在执行一个多步骤的任务,比如“下单购买商品”,但执行到一半时,我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…

2026/7/29 0:01:46阅读更多 →
【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/29 4:31:51阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →