Leetcode—2646.最小化旅行的价格总和【困难】

2023每日刷题(五十三)

Leetcode—2646.最小化旅行的价格总和

在这里插入图片描述

算法思想

看灵神的
在这里插入图片描述

实现代码

class Solution {
public:int minimumTotalPrice(int n, vector<vector<int>>& edges, vector<int>& price, vector<vector<int>>& trips) {vector<int> g[n];for(auto e: edges) {int start = e[0], end = e[1];g[start].emplace_back(end);g[end].emplace_back(start);}vector<int> cnt(n);for(auto t: trips) {int end = t[1];function<bool(int, int)> dfs = [&](int x, int fa) {if(x == end) {cnt[x]++;return true;}for(auto y: g[x]) {if(y != fa && dfs(y, x)) {cnt[x]++;return true;}}return false;};dfs(t[0], -1);}function<pair<int, int>(int, int)> dfs2 = [&](int x, int fa) -> pair<int, int> {int not_half = price[x] * cnt[x];int half = not_half / 2;for(auto y: g[x]) {if(y != fa) {auto [nh, h] = dfs2(y, x);// x点不变, y可变可不变not_half += min(nh, h);// x点减半, y不变half += nh;}}return {not_half, half};};auto [nh, h] = dfs2(0, -1);return min(nh, h);}
};

运行结果

在这里插入图片描述
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

Hazel引擎学习(十二)

我自己维护引擎的github地址在这里&#xff0c;里面加了不少注释&#xff0c;有需要的可以看看 参考视频链接在这里 Scene类重构 参考&#xff1a;《InsideUE4》GamePlay架构&#xff08;二&#xff09;Level和World 目前我的Scene类基本只是给entt的封装&#xff0c;提供了…

python:差分进化算法(Differential Evolution,DE)求解23个测试函数(提供python代码)

一、差分进化算法 差分进化算法&#xff08;Differential Evolution&#xff0c;DE)于1997年由Rainer Storn和Kenneth Price在遗传算法等进化思想的基础上提出的。差分进化思想来源即是早期提出的遗传算法&#xff08;GeneticAlgorithm&#xff0c;GA&#xff09;&#xff0c;…

Python ItsDangerous库:构建安全可靠的数据传输

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com ItsDangerous是Python中一个轻量级的库&#xff0c;旨在提供安全且简单的数据传输和签名功能。本文将深入介绍ItsDangerous的核心特性、基本用法以及在实际应用中的一些示例&#xff0c;通过丰富的示例代码&…

echart中定义brush,默认状态,触发状态

1.定义矩形选择笔刷&#xff1a;brush 2.设置brush的默认状态和选中逻辑

微前端 -- wujie 预加载和原理 无界传参

目录 wujie 预加载和原理 原理解析 MessageChannel 无界传参 1.全局变量 2.Props 3.event bus wujie 预加载和原理 提前把无界实例创建好 runPreload 赋值给sandbox.preload 预先加载好 startApp 判断是否有preload 需要从wujie的实例导出preloadApp,参数跟startApp 一…

十大最好猫主食罐头有哪些品牌?排名前五猫主食罐头品牌推荐

我发现不少人有这样的困扰&#xff01;买到各种数值都很好的猫罐头后&#xff0c;猫咪一点都不吃。或者是猫咪吃了猫罐头之后&#xff0c;吃了一段时间后就软便身体不舒服。 猫罐头侠登场&#xff01;养猫这么久了我就把我吃的不错的猫罐头分享一下&#xff01;别纠结了&#…

cmake生成表达式

不积小流&#xff0c;无以成江海 <CONFIG:RELEASE> config这个关键字&#xff0c;主要是看CMAKE_BUILD_TYPE这个变量的值是不是和冒号后的一样&#xff0c;一样的话就返回true, 否则就是false. cmake_minimum_required(VERSION 3.10) project(Test) set(CMAKE_CXX_STA…

Struts 框架(架构师考试复习资料)

Struts 是一个基于 SUN J2EE平台的 MVC 框架&#xff0c;主要是采用 Servlet 和 JSP 技术来实现的。在 Struts 框架中&#xff0c;模型由实现业务逻辑的 JavaBean 或 EJB 构件构成&#xff0c;控制器由ActionServlet和 Action 来实现&#xff0c;视图由一组 JSP 文件构成&#…

Unity中Batching优化的GPU实例化(3)

文章目录 前言一、UNITY_SETUP_INSTANCE_ID(v);二、在UnityInstancing.cginc文件中&#xff0c;看一下Unity这句话做了什么1、使用了该 .cginc 后&#xff0c;会自动预定义该函数2、需要满足GPU实例化条件&#xff0c;才会执行对应语句3、满足GPU实例化后&#xff0c;主要执行的…

随机分词与tokenizer(BPE->BBPE->Wordpiece->Unigram->sentencepiece->bytepiece)

0 tokenizer综述 根据不同的切分粒度可以把tokenizer分为: 基于词的切分&#xff0c;基于字的切分和基于subword的切分。 基于subword的切分是目前的主流切分方式。subword的切分包括: BPE(/BBPE), WordPiece 和 Unigram三种分词模型。其中WordPiece可以认为是一种特殊的BPE。完…

实用方法 | 搭建真正满足用户需求的在线帮助中心

随着互联网的普及和信息技术的快速发展&#xff0c;客户服务和支持变得越来越重要。为了提高客户满意度和维持良好的品牌形象&#xff0c;越来越多企业都开始搭建自己的在线帮助中心。 不知从何下手&#xff1f;细想一下&#xff0c;搭建在线帮助中心主要就是为了解决用户的问…

Linux,Web网站服务(一)

1.准备工作 为了避免发生端口冲突&#xff0c;程序冲突等现象&#xff0c;建议卸载使用RPM方式安装的httpd [rootnode01 ~]# rpm -e http --nodeps 挂载光盘到/mnt目录 [rootnode01 ~]# mount /dev/cdrom /mnt Apache的配置及运行需要apr.pcre等软件包的支持&#xff0c;因此…