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);
    }
};

运行结果

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-08 23:16:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-08 23:16:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-08 23:16:03       87 阅读
  4. Python语言-面向对象

    2023-12-08 23:16:03       96 阅读

热门阅读

  1. 人工智能在医疗领域的应用与前景

    2023-12-08 23:16:03       59 阅读
  2. LLVM学习笔记(64)

    2023-12-08 23:16:03       38 阅读
  3. 常用Nmap脚本

    2023-12-08 23:16:03       40 阅读
  4. Python合并一个 Excel 里面的多张表

    2023-12-08 23:16:03       60 阅读
  5. 系统维护与调试命令 -- ping

    2023-12-08 23:16:03       53 阅读
  6. IDEA中,Archetype的作用

    2023-12-08 23:16:03       56 阅读
  7. 工业4轴机器人C#控制

    2023-12-08 23:16:03       50 阅读
  8. 举例说明自然语言处理(NLP)技术。

    2023-12-08 23:16:03       56 阅读
  9. go 爬虫 todo

    2023-12-08 23:16:03       65 阅读