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

2023每日刷题(五十三)

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

算法思想

看灵神的

实现代码

cpp 复制代码
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);
    }
};

运行结果


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

相关推荐
散峰而望1 分钟前
【算法竞赛】二叉树
开发语言·数据结构·c++·算法·深度优先·动态规划·宽度优先
持梦远方6 分钟前
QML 与 C++ 后端交互学习笔记
c++·qt·学习·交互
是做服装的同学10 分钟前
如何选择适合企业的优质服装软件ERP系统?
大数据·经验分享·其他
Never_Satisfied14 分钟前
在c#中,缩放jpg文件的尺寸
算法·c#
那起舞的日子19 分钟前
卡拉兹函数
java·算法
天若有情67321 分钟前
我发明的 C++「数据注入模型(DWM)」:比构造函数更规范、更专业的结构体创建写法
开发语言·c++·rpc
颜酱22 分钟前
滑动窗口算法通关指南:从模板到实战,搞定LeetCode高频题
javascript·后端·算法
Stringzhua22 分钟前
队列-双端队列【Queue2】
java·数据结构·算法·队列
侧岭灵风28 分钟前
yolov5颈部网络图解
深度学习·算法·yolo
夕除33 分钟前
js--21
java·python·算法