2025年3月GESP真题及题解(C++八级): 割裂

2025年3月GESP真题及题解(C++八级): 割裂

题目描述

小杨有一棵包含 $ n $ 个节点的树,其中节点的编号从 $ 1 $ 到 $ n $。

小杨设置了 $ a $ 个好点对{ ⟨ u 1 , v 1 ⟩ , ⟨ u 2 , v 2 ⟩ , … , ⟨ u a , v a ⟩ } \{\langle u_1, v_1 \rangle, \langle u_2, v_2 \rangle, \dots, \langle u_a, v_a \rangle\}{⟨u1,v1,u2,v2,,ua,va⟩}和一个坏点对⟨ b u , b v ⟩ \langle b_u, b_v \ranglebu,bv。一个节点能被删除,当且仅当:

  • 删除该节点后对于所有的 $ 1 \leq i \leq a $,好点对 $ u_i $ 和 $ v_i $ 仍然连通;
  • 删除该节点后坏点对 $ b_u $ 和 $ b_v $ 不连通。

如果点对中的任意一个节点被删除,其视为不连通。

小杨想知道,还有多少个节点能被删除。

输入格式

第一行包含两个非负整数 $ n $, $ a $,含义如下题面所示。

接下来n − 1 n - 1n1行,每行包含两个正整数 $ x_i, y_i $,代表存在一条连接节点 $ x_i $ 和 $ y_i $ 的边;

之后 $ a $ 行,每行包含两个正整数 $ u_i, v_i $,代表一个好点对 $ \langle u_i, v_i \rangle $;

最后一行包含两个正整数 $ b_u, b_v $,代表坏点对 $ \langle b_u, b_v \rangle $。

输出格式

输出一个非负整数,代表删除的节点个数。

输入输出样例 #1
输入 #1
6 2 1 3 1 5 3 6 3 2 5 4 5 4 5 3 2 6
输出 #1
2
说明/提示
子任务编号分值$ n $$ a $
120 2020= 10 =10=10= 0 =0=0
220 2020$ \leq 100 $$ \leq 100 $
360 6060$ \leq 10^6 $$ \leq 10^5 $

对于全部数据,保证有 $ 1 \leq n \leq 10^6 $, $ 0 \leq a \leq 10^5 $, $ u_i \neq v_i $, $ b_u \neq b_v $。

思路分析

  1. 问题转化
    将原问题转化为:寻找树上所有满足以下条件的节点:

    • 在坏点对(bu, bv)的路径上(包括端点);
    • 不在任何一个好点对(ui, vi)的路径上。
  2. 算法步骤

    • 读入树,并以节点1为根进行BFS,计算每个节点的深度、直接父节点和倍增祖先表(用于LCA查询)。
    • 使用树上差分标记所有被好点对路径覆盖的节点:对于每个好点对(u, v),在其LCA处减1,在LCA的父节点处再减1,在uv处加1。
    • 通过逆BFS序累加差分值,得到每个节点被好点对路径覆盖的次数。
    • 读入坏点对,计算其LCA。
    • 遍历坏点对路径上的所有节点(从两端向上走到LCA),统计覆盖次数为0的节点个数,即为答案。

代码实现

#include<bits/stdc++.h>usingnamespacestd;constintMAXN=1e6+5;constintLOG=20;// 2^20 > 1e6vector<int>adj[MAXN];intdepth[MAXN];intparent[MAXN][LOG];// 倍增祖先,parent[u][0] 是直接父节点intdiff[MAXN];// 差分数组,最后变成覆盖次数vector<int>order;// BFS顺序intn,a;// 计算LCAintlca(intu,intv){if(depth[u]<depth[v])swap(u,v);// 将u提到与v同一深度for(inti=LOG-1;i>=0;--i){if(depth[parent[u][i]]>=depth[v]){u=parent[u][i];}}if(u==v)returnu;// 一起向上跳for(inti=LOG-1;i>=0;--i){if(parent[u][i]!=parent[v][i]){u=parent[u][i];v=parent[v][i];}}returnparent[u][0];}intmain(){scanf("%d%d",&n,&a);// 读入树边for(inti=0;i<n-1;++i){intx,y;scanf("%d%d",&x,&y);adj[x].push_back(y);adj[y].push_back(x);}// BFS预处理深度、倍增表,并记录BFS顺序queue<int>q;q.push(1);depth[1]=1;parent[1][0]=0;// 根的父亲设为0while(!q.empty()){intu=q.front();q.pop();order.push_back(u);// 计算倍增祖先for(inti=1;i<LOG;++i){parent[u][i]=parent[parent[u][i-1]][i-1];}for(intv:adj[u]){if(v==parent[u][0])continue;depth[v]=depth[u]+1;parent[v][0]=u;q.push(v);}}// 初始化diff为0memset(diff,0,sizeof(diff));// 处理好点对for(inti=0;i<a;++i){intu,v;scanf("%d%d",&u,&v);intl=lca(u,v);diff[u]++;diff[v]++;diff[l]--;if(l!=1){// 如果LCA不是根,还需要在其父节点减1diff[parent[l][0]]--;}}// 逆BFS序累加,得到每个节点的覆盖次数for(inti=order.size()-1;i>=0;--i){intu=order[i];intp=parent[u][0];if(p!=0){diff[p]+=diff[u];}}// 现在 diff[u] 表示节点 u 被好点对路径覆盖的次数// 读入坏点对intbu,bv;scanf("%d%d",&bu,&bv);intl_bad=lca(bu,bv);// 统计答案:坏点对路径上所有节点中,覆盖次数为0的节点个数intans=0;// 从 bu 向上走到 l_badintx=bu;while(x!=l_bad){if(diff[x]==0)ans++;x=parent[x][0];}// 从 bv 向上走到 l_badx=bv;while(x!=l_bad){if(diff[x]==0)ans++;x=parent[x][0];}// 检查 l_bad 本身if(diff[l_bad]==0)ans++;printf("%d\n",ans);return0;}

功能分析

  1. 时间复杂度

    • 预处理BFS和倍增表:O(n log n)
    • 处理a个好点对:每次LCA查询O(log n),共O(a log n)
    • 差分累加:O(n)
    • 遍历坏点对路径:最坏O(n)
    • 总时间复杂度:O((n + a) log n)
  2. 空间复杂度

    • 邻接表:O(n)

    • 深度、差分数组:O(n)

    • 倍增表:O(n log n),约80MB。

    • BFS顺序数组:O(n)


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

1、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html

2、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

3、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html

4、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1166130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Emotion2Vec+ Large智能家居控制?语音情绪触发指令设想

Emotion2Vec Large智能家居控制&#xff1f;语音情绪触发指令设想 1. 引言&#xff1a;从情感识别到智能交互的跃迁 随着人工智能技术的发展&#xff0c;语音交互已不再局限于“唤醒词命令”的固定模式。用户期望更自然、更具感知能力的人机交互方式。Emotion2Vec Large 作为…

语音识别避坑指南:Fun-ASR-MLT-Nano-2512常见问题全解

语音识别避坑指南&#xff1a;Fun-ASR-MLT-Nano-2512常见问题全解 你有没有遇到过这种情况&#xff1a;刚部署完 Fun-ASR-MLT-Nano-2512&#xff0c;满怀期待地上传一段粤语音频&#xff0c;结果返回空识别结果&#xff1f;或者服务启动后 CPU 占用飙到 300%&#xff0c;日志里…

SGLang动态批处理:请求合并优化实战指南

SGLang动态批处理&#xff1a;请求合并优化实战指南 1. 引言 1.1 业务场景描述 在大模型推理服务部署过程中&#xff0c;随着用户请求数量的快速增长&#xff0c;系统吞吐量和响应延迟成为关键瓶颈。尤其是在多轮对话、任务规划、结构化数据生成等复杂场景下&#xff0c;传统…

Whisper Large v3语音增强:基于深度学习的降噪技术

Whisper Large v3语音增强&#xff1a;基于深度学习的降噪技术 1. 引言 1.1 技术背景与行业需求 在多语言交流日益频繁的今天&#xff0c;语音识别技术已成为跨语言沟通、会议记录、内容创作和无障碍服务的核心工具。然而&#xff0c;真实场景中的音频往往伴随着环境噪声、回…

GPEN镜像使用小技巧,提升修复效率两倍

GPEN镜像使用小技巧&#xff0c;提升修复效率两倍 1. 引言 在人像修复与增强领域&#xff0c;GPEN&#xff08;GAN-Prior based Enhancement Network&#xff09;凭借其基于生成先验的空域学习机制&#xff0c;在保持人脸结构一致性的同时实现了高质量的超分辨率重建。然而&a…

开发者效率提升:IndexTTS-2-LLM自动化测试部署教程

开发者效率提升&#xff1a;IndexTTS-2-LLM自动化测试部署教程 1. 引言 1.1 学习目标 本文旨在为开发者提供一套完整的 IndexTTS-2-LLM 智能语音合成系统 的本地化部署与自动化测试实践方案。通过本教程&#xff0c;您将掌握&#xff1a; 如何快速部署基于 kusururi/IndexT…

AI图像增强标准建立:Super Resolution质量评估体系

AI图像增强标准建立&#xff1a;Super Resolution质量评估体系 1. 引言&#xff1a;AI超清画质增强的技术演进与挑战 随着数字内容消费的爆发式增长&#xff0c;用户对图像质量的要求持续提升。从老照片修复到移动端低带宽图片加载&#xff0c;低分辨率图像的视觉还原问题已成…

结合Multisim数据库的电路分析教学改革:深度剖析

从“做实验”到“看数据”&#xff1a;当电路分析课遇上Multisim数据库你有没有遇到过这样的场景&#xff1f;学生交上来的实验报告&#xff0c;波形图贴得整整齐齐&#xff0c;数据分析也写得头头是道。可当你问他&#xff1a;“你是怎么调出示波器的触发点的&#xff1f;”他…

SGLang-v0.5.6环境备份术:云端快照随时回滚不怕错

SGLang-v0.5.6环境备份术&#xff1a;云端快照随时回滚不怕错 你是不是也遇到过这种情况&#xff1f;刚在服务器上配好SGLang环境&#xff0c;跑通了第一个推理任务&#xff0c;正准备继续深入学习&#xff0c;结果一不小心执行了一条错误命令&#xff0c;把Python依赖全搞乱了…

支持实时录音与批量处理|深度体验科哥版FunASR语音识别WebUI

支持实时录音与批量处理&#xff5c;深度体验科哥版FunASR语音识别WebUI 1. 引言&#xff1a;中文语音识别的轻量化落地实践 在智能语音技术快速发展的今天&#xff0c;高精度、低延迟的语音识别系统正广泛应用于会议记录、视频字幕生成、客服质检等多个场景。然而&#xff0…

Z-Image-Turbo图像格式输出说明,目前仅支持PNG

Z-Image-Turbo图像格式输出说明&#xff0c;目前仅支持PNG 1. 概述与背景 阿里通义Z-Image-Turbo WebUI图像快速生成模型是由开发者“科哥”基于DiffSynth Studio框架进行二次开发的高性能AI图像生成工具。该模型在保持高质量输出的同时&#xff0c;显著提升了推理速度&#…

FSMN-VAD实测:10秒静音自动过滤无压力

FSMN-VAD实测&#xff1a;10秒静音自动过滤无压力 在语音识别、会议记录、智能助手等应用中&#xff0c;原始音频往往包含大量无效的静音片段。这些冗余数据不仅浪费存储空间&#xff0c;还会拖慢后续处理流程。如何高效地从长音频中精准提取有效语音段&#xff1f;本文将带你…

FST ITN-ZH中文ITN模型实战|WebUI批量处理文本标准化任务

FST ITN-ZH中文ITN模型实战&#xff5c;WebUI批量处理文本标准化任务 1. 简介与应用场景 1.1 什么是逆文本标准化&#xff08;ITN&#xff09; 逆文本标准化&#xff08;Inverse Text Normalization, ITN&#xff09;是将自然语言中的非规范表达转换为标准格式的过程。在语音…

超越LLM全能主义:构建模块化NLP系统的务实之道

反对LLM全能主义 许多人在用大型语言模型&#xff08;LLM&#xff09;构建真正的新事物&#xff0c;比如以前不可能实现的、狂野的互动小说体验。但如果你正在解决企业长期以来一直试图解决的同类自然语言处理&#xff08;NLP&#xff09;问题&#xff0c;使用它们的最佳方式是…

BGE-M3微调入门:Colab跑不动?云端GPU轻松搞定

BGE-M3微调入门&#xff1a;Colab跑不动&#xff1f;云端GPU轻松搞定 你是不是也遇到过这种情况&#xff1a;在Google Colab上微调BGE-M3模型&#xff0c;训练到一半突然断连&#xff0c;显存爆了&#xff0c;进度全丢&#xff1f;更气人的是&#xff0c;免费版根本没法保存中…

模型服务高可用:阿里图片旋转判断的灾备方案设计

模型服务高可用&#xff1a;阿里图片旋转判断的灾备方案设计 1. 背景与问题定义 1.1 图片旋转判断的技术挑战 在现代图像处理系统中&#xff0c;图片方向不一致是一个常见但影响深远的问题。用户上传的照片可能由于设备传感器&#xff08;如EXIF信息&#xff09;未正确解析而…

Keil5添加文件核心要点:面向工控开发者

Keil5添加文件实战指南&#xff1a;工控开发者的高效工程管理之道在工业控制系统的嵌入式开发中&#xff0c;我们常常面对一个看似简单却暗藏玄机的问题&#xff1a;为什么加个.c文件会编译失败&#xff1f;头文件明明就在旁边&#xff0c;怎么还是“找不到”&#xff1f;如果你…

影视配音分析助手:SenseVoiceSmall角色情绪标注实战案例

影视配音分析助手&#xff1a;SenseVoiceSmall角色情绪标注实战案例 1. 引言 在影视制作、动画配音与内容审核等场景中&#xff0c;语音不仅是信息传递的载体&#xff0c;更是情感表达的核心媒介。传统语音识别&#xff08;ASR&#xff09;系统主要关注“说了什么”&#xff…

ARM64开发环境搭建:QEMU模拟实战入门

用QEMU玩转ARM64开发&#xff1a;从零搭建可调试的虚拟环境你有没有遇到过这样的场景&#xff1f;手头有个ARM64的新项目&#xff0c;但目标板还没到货&#xff1b;或者公司采购流程漫长&#xff0c;芯片还在流片阶段&#xff0c;团队却已经急着要开始驱动适配和系统移植。这时…

4种典型场景参数配置:cv_unet_image-matting最佳实践汇总

4种典型场景参数配置&#xff1a;cv_unet_image-matting最佳实践汇总 1. 引言 随着图像处理在电商、社交平台和数字内容创作中的广泛应用&#xff0c;精准高效的图像抠图技术成为关键需求。基于U-Net架构的cv_unet_image-matting模型凭借其强大的语义分割能力&#xff0c;在人…