E. Journey

news/2025/11/12 21:40:55/文章来源:https://www.cnblogs.com/bluket/p/19215558

E. Journey

Problem - E - Codeforces

\(kruskal\)重构树, 欧拉路径

首先不考虑操作二,那么题目就是问走过所有边回到 \(1\) 的最短路径,如果均仅走过一次,那么整个路径构成欧拉回路,答案为 \(\sum_i w_i\) ,否则,将有一些边走过多次。

那么操作二可以看作是在原图上建立一些虚拟边,避免走过重复边,缩小代价,答案就是虚拟边和原有的代价之和。

根据欧拉回路的定义,这些虚拟边根据每个点的度来建立,每两个度数为奇数的点(下文称为奇点)间可以建立

虚拟边的代价是两点之间路径编号最大的边的边权,且不要求简单路径。很容易想到并查集维护连通性即可确定虚拟边的代价,但复杂度较高。

考虑\(kruskal\)重构树,以原图上每个点作为叶子节点,按序号从小到大枚举边,将边作为非叶子节点,链接原图上非叶子的两个节点的祖先。

则两个奇点 \(u\) , \(v\) 间的虚拟边的代价即为重构树上两个点 \(u\) , \(v\) 的公共祖先的最小权值,可以\(O(n+m)\)计算完

class DSU{
public:vector<int> p;DSU(){}DSU(int n): p(n){iota(p.begin(), p.end(), 0);};int find(int x) {return x == p[x] ? x : p[x] = find(p[x]);}
};void bluket() {int n = R, m = R;ll ans = 0;vector<ll> a(m + 1), deg(n+1);vector<vector<int>> adj(n + m + 1);DSU ds(n + m + 1);for (int i = 1; i <= m; i++) {int u = R, v = R, w = R;int fu = ds.find(u), fv = ds.find(v);deg[u]++, deg[v]++;ans += w;a[i] = w;// kurskal 重构树, 按节点编号合并if(fu == fv) {adj[i + n].push_back(fu);ds.p[fu] = i + n;}else {adj[i + n].push_back(fu);ds.p[fu] = i + n;adj[i + n].push_back(fv);ds.p[fv] = i + n;}}// u 当前节点,fw 祖宗节点到当前节点可以采用的最小边权auto dfs = [&](auto&& dfs, int u, ll fw) -> int {// 到达表示重构树上的叶子节点,即原图的点, 返回是不是奇点if(u <= n) return deg[u] % 2;fw = min(fw, a[u - n]);int cnt = 0;for (int v : adj[u]) {cnt += dfs(dfs, v, fw);}// 所有未处理的子树上的奇点的最近公共祖先是当前的 uans += cnt / 2 * fw;cnt %= 2;// 传递未处理的奇点return cnt;};dfs(dfs, n + m, a[m]);cout << ans << endl;
}

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

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

相关文章

Dynamics 365 Field Service跨站脚本欺骗漏洞分析

本文详细分析了CVE-2025-62210漏洞,这是一个影响Dynamics 365 Field Service在线版的跨站脚本安全漏洞,允许授权攻击者通过网络进行欺骗攻击,CVSS评分为8.7分的高危漏洞。概述 CVE-2025-62210是Dynamics 365 Field …

Linux优秀的系统--信号(3--信号的保存、阻塞)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:SQL提数与数据分析指南

深入解析:SQL提数与数据分析指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

大家来写 ICPC 西安(没写完)

wait感觉是好题啊,写一下,不过我好像把两场当成同一场了说是。 开题顺序:难度排序。P14444 [ICPC 2025 Xian Practice] Great Indices最开始读错题了,被普及-的题目卡了,我很唐。 考虑至多有一个不是因数,因此我…

[译] 省略 Async 与 Await

https://blog.stephencleary.com/2016/12/eliding-async-await.html当开发者掌握了 async 和 await 的基础知识并能熟练运用后,常会遇到一个设计疑问:如果可以移除 async 和 await 关键字,是否应该这样做?在很多场…

你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!

本文深度解析技术债务管理之道,指出技术债务需合理管理而非完全消除,介绍了技术债务的四大类型(设计、代码、测试、文档),以及识别评估模型与偿还策略,并提供了实战案例与预防措施。关注我,掌握企业数字化/信息…

iverilog、gtkwave工具链接

最近在尝试TRAE生成代码,工具生成代码后会检查系统中是否有仿真工具,安装iverilog+gtkwave,方便TRAE调用检查生成的代码。 链接:https://bleyer.org/icarus/****************************************************…

2025 11 12

某NOIP模拟赛T1 一个整除分块类似的东西直接秒了 T2考虑 \([l,r]\) 的交换操作可以看成 \([l,m]\) 和 \([m,r+1]\),故我们可以对这个进行处理即可第23场弘文了这场我T1都没切,我考虑枚举排列和起点之后,我不知道为什…

使用WiX创建Windows应用安装包 - -YADA

参考:官方教程 WiX 工具集(简称 WiX)用于构建 Windows 安装程序,它是构建工具、运行时工具和库的集合,不只是制作基本的安装包,还可以安装IIS网站、创建SQL Server、在Windows防火墙中注册例外。 安装 Wix 工具集…

学生信息管理系统团队项目随笔

一、团队基本信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481…

Total Recall: 如何在Windows下开发输入法

https://github.com/KunYi/W2K_DDK_SAMPLES/archive/refs/heads/main.zip 链接: https://pan.baidu.com/s/1Dw4SZSZUY-lrAiBWTtP_5w 提取码: enjcW2K_DDK_SAMPLES-main/ime/chs下的文件: candd.bmp canddp.bmp cande.…

大数据量场景下的编辑 / 选择 / 详情优化

面对企业系统中主子表页面的卡顿难题,需以全链路“按需”设计破局:通过前端差异提交、后端批量处理与数据层协同,将性能优化内化为无缝的用户体验,让海量数据操作变得举重若轻。在企业级系统开发中,最容易卡顿、超…

简化Python数据结构初始化:从繁琐到优雅的进阶指南 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

RabbitMQ相关

RabbitMQ的AMQP协议是什么 AMQP(Advanced Message Queuing Protocol),高级消息队列协议,提供统一消息服务的开放标准,其核心目标是实现客户端与消息服务之前的高效、安全异步通信,并且在传递的时候不受客户端和开发…

第八天 测试用例编写

一、微信发红包xmind图二、高效编写测试用例的实用技巧 1、用例的来源:公司模板、自己设计、用例管理工具(如禅道) 2、核心字段:用例编号、用例标题、前置条件、用例步骤、预期结果、优先级 3、注意点: (1)用例…

软工团队作业2--需求规格说明书

作业信息这个作业属于哪个课程 首页 - 计科23级34班 - 广东工业大学 - 班级博客 - 博客园这个作业要求在哪里 团队作业2-《需求规格说明书》 - 作业 - 计科23级34班 - 班级博客 - 博客园这个作业的目标 明确团队项目细…

没用的博客园页面的要素介绍

rt1. 关于那几行字点击查看"<b style=color:rgb(119, 248, 255)>又是一年雨季</b>","<b style=color:rgb(119, 248, 255)>青苔悄悄爬满缝隙</b>","<b style=colo…

使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践

使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

ChatBI 重构工业数据交互:TDengine IDMP 让数据对话更智能

在工业数据处理领域,传统的 BI 工具往往需要用户具备专业的数据分析技能,通过复杂的操作才能获取所需信息,这在快节奏的工业生产中显得效率低下。而 ChatBI 的出现,正以自然语言交互为核心,为工业数据交互带来了革…