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

news2024/11/19 9:40:12

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.coloradmin.cn/o/1298320.html

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

相关文章

Win10的SVN Adapter V1.0 中黄色感叹号 -- 解决

大部分都问题都可以通过&#xff1a; 关闭 SVN Adapter V1.0 在下载最新的 SVNDrv.sys替换 C:\Windows\System32\drivers 中的同名文件启动 SVN Adapter V1.0 就能成功 但是部分人的电脑 SVN Adapter V1.0 是有感叹号的&#xff0c;说明注册表有问题 先用 CCleaner 修复注册表…

解决npm install时报:gyp ERR! configure error

报错内容&#xff1a; npm ERR! gyp ERR! cwd C:\Users\zccbbg\code\my\examvue\node_modules\node-sass npm ERR! gyp ERR! node -v v16.13.1 npm ERR! gyp ERR! node-gyp -v v3.8.0 npm ERR! gyp ERR! not ok npm ERR! Build failed with error code: 1 解决办法&#xff1a;…

Weblogic T3协议反序列化漏洞

文章目录 1. Weblogic T3协议反序列化漏洞1.1 漏洞描述1.2 基本原理1.3 漏洞复现1.4 修复建议 1. Weblogic T3协议反序列化漏洞 1.1 漏洞描述 说明内容漏洞编号CVE-2018-2628漏洞名称Weblogic T3协议反序列化漏洞漏洞评级高危影响范围Weblogic 10.3.6.0Weblogic 12.1.3.0Webl…

从零开始学Scala,这些学习网站让你轻松入门!

介绍&#xff1a;Scala&#xff0c;可伸缩的语言&#xff0c;是一门多范式的编程语言&#xff0c;由联邦理工学院洛桑&#xff08;EPFL&#xff09;的Martin Odersky于2001年基于Funnel的工作开始设计。它是以Java虚拟机&#xff08;JVM&#xff09;为运行环境并将面向对象编程…

智能优化算法应用:基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于灰狼算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.灰狼算法4.实验参数设定5.算法结果6.参考文献7.MA…

用友T3如何反结账、反记账、反审核及删除凭证

在T3总账中已经进行了总账记账和月末结账&#xff0c;但是需要去修改凭证或删除凭证&#xff0c;这个时候就需要去进行反结账、反记账等操作&#xff0c;以下是具体的操作流程 第一步、反结账 1、进入用友T3件&#xff0c;打开总账系统模块&#xff0c;点月末结账&#xff0c…

【链表OJ—链表的中间节点】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 1、链表的中间节点 方法讲解&#xff1a; 图文解析&#xff1a; 代码实现&#xff1a; 总结 前言 世上有两种耀眼的光芒&#xff0c;一种是正在升起的太阳&#x…

智能优化算法应用:基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蚁狮算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蚁狮算法4.实验参数设定5.算法结果6.参考文献7.MA…

pwn入门:基本栈溢出之ret2libc详解(以32位+64位程序为例)

目录 写在开头 题目简介 解题思路 前置知识&#xff08;简要了解&#xff09; plt表和got表 延迟绑定 例题详解 32位 64位 总结与思考 写在开头 这篇博客早就想写了&#xff0c;但由于近期事情较多&#xff0c;一直懒得动笔。近期被领导派去临时给合作单位当讲师&a…

全自动网印机配件滚珠螺杆起什么作用?

全自动网印机配件主要包括印刷网板、墨水或油墨箱、墨水或油墨管道、传动部件、移动部件、传动系统、控制系统、安全保护装置等等这些。 滚珠螺杆是一种精密的传动元件&#xff0c;能够将电机的旋转运动转化为线性运动&#xff0c;从而驱动印刷机的工作台进行精确的移动&#x…

Java毕业设计—vue+SpringBoot药房药店药品管理系统

项目介绍 项目背景 药店系统是现代医疗行业不可或缺的部分&#xff0c;它为药店提供全面、高效的管理服务&#xff0c;对保障顾客健康和药品质量起着至关重要的作用。 药店系统的功能主要包括库存管理、销售管理、客户管理和财务管理等多个方面。在库存管理方面&#xff0c;…

上网监控软件丨5大不同人群的锋利观点

上网监控软件是一种可以监控员工上网行为的软件&#xff0c;通常被用于企业或组织内部。这种软件可以记录员工访问的网站、发送的邮件、聊天的记录等&#xff0c;并可以对员工的上网行为进行控制和限制&#xff0c;从而提高员工的工作效率&#xff0c;防止数据泄露和网络攻击。…

PyCharm编辑器结合Black插件,轻松实现Python代码格式化

大家好&#xff0c;使用Black对Python代码进行格式化&#xff0c;可使代码看起来更美观。但是&#xff0c;随着项目规模不断变大&#xff0c;对每个文件运行Black变得很繁琐。本文就来介绍在PyCharm中实现这一目标的方法。 1.安装Black 首先&#xff0c;在虚拟环境中安装Blac…

javacv踩坑记录

前一阵学习opencv&#xff0c;发现在做人脸识别的时候遇到一些类库不存在的情况&#xff0c;查找后发现是由于拓展包没有安装完全&#xff08;仅安装了基础版&#xff09;。由于网络的问题&#xff08;初步猜测&#xff09;&#xff0c;始终无法安装好拓展包。 于是另辟蹊径&am…

【LeetCode刷题】数组篇2

&#x1f387;数组中等题Part &#x1f308; 开启LeetCode刷题之旅 &#x1f308; 文章目录 &#x1f387;数组中等题Part&#x1f370;229.多数元素II&#x1f451;思路分析1.哈希表法2.摩尔投票法(进阶) &#x1f370;15.三数之和&#x1f451;思路分析1.排序双指针 &#x…

CentOS 7 离线安装达梦数据库8.0

前期准备工作 确认操作系统的版本和数据库的版本是否一致 ## 查看系统版本&#xff1a;cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)关闭防火墙和Selinux # 查看selinux是不是disabled / enforce cat /etc/selinux/config## 查看防火墙状态 firewall-cmd …

【wpf】handycontrol growl 打造一个比弹窗优雅10倍的信息通知方式

前言 话不多说&#xff0c;先上图&#xff1a; 这种弹框不会影响主进程的脚本&#xff0c;同时分为四个等级&#xff1a; 普通消息&#xff1a;Info &#xff08;时间一到&#xff0c;自动消失&#xff0c;除非鼠标停留上面&#xff09;警告&#xff1a; Warning &#xff0…

【C++ Primer Plus学习记录】if语句

目录 一、if语句 二、if else语句 三、格式化if else语句 四、if else if else结构 一、if语句 if语句让程序能够决定是否应执行特定的语句。 if有两种格式&#xff1a;if和if else。 if语句的语法与while相似&#xff1a; if(test-condition)statement; 如果test-con…

Linux快速搭建本地yum更新audit

场景&#xff1a;内网一台服务器上线&#xff0c;需要更新audit版本&#xff0c;因无法与其他服务器通信&#xff0c;需临时配置本地仓库。 1、上传新版本操作系统iso到服务器 2、创建yum仓库文件存储目录 mkdir /opt/myrepo 3、挂载磁盘到/mnt mount /opt/Kylin-Server-V…

【头歌系统数据库实验】实验4 MySQL单表查询

目录 第1关. 在users表中新增一个用户&#xff0c;user_id为2019100904学号&#xff0c;name为2019-物联网-李明 第2关. 在users表中更新用户 user_id为robot_2 的信息&#xff0c;name设为 机器人二号 第3关. 将solution表中所有 problem_id 为1003 题目的解答结果&#xf…