2026华为OD机考新系统真题|山区救援路线规划(2026.11.01)

Cadence IC618/Spectre231安装避坑指南:详解环境变量配置与License管理那些事儿 本文深入解析Cadence IC618/Spectre231安装过程中的环境变量配置与License管理难题,提供从变量冲突解决到高效License管理的实用方案。针对常见的64位标识冲突、路径污染及License服务器连接问题,给出具体诊断步骤和优化建议,帮助用户构建稳定可靠的EDA环境。 阅读详情

山区救援路线规划(2026.11.01)

2026年最新华为OD机考题库(按考点分类): 2026年最新华为OD机考题库

题目描述

某山区建立了一套应急救援通道网络。由于地形限制,从指挥中心(根节点)出发,每条通道在岔路口只能分为两条分支,最终抵达不同救援集结点(叶子节点)。

每个通道节点都有对应的海拔高度(米)。救援队从指挥中心出发前往集结点,需要权衡两方面安全因素:

  • 体力消耗:上坡比下坡更耗体力。将每段路程的体力消耗定义为:
    • 上坡(海拔升高):α×∣高差∣
    • 下坡(海拔降低):β×∣高差∣
    • 一条路线的总体力消耗为各段消耗之和
  • 海拔跨度:路线上最高海拔与最低海拔的差值不能超过安全阈值 S,否则气压变化过大,队员有高原反应风险。

一条「路线」指从根节点出发、走到某个叶子节点的路径(叶子节点指左右子节点都不存在的节点)。你的任务是:在所有海拔跨度不超过 S 的路线中,找出总体力消耗最小的路线。

若存在多条体力消耗相同的路线,选择节点编号序列字典序较小的那条:按顺序逐个比较两条序列的元素,第一个不同的位置上元素更小者更小;若一条序列是另一条序列的前缀,则较短的序列更小。

输入描述

共 5 个参数,依次为:n(节点数)、alpha(上坡系数)、beta(下坡系数)、S(海拔跨度阈值)、nodes(n 行 4 列的二维数组,每行为 [id, value, left, right],id 从 1 到 n 按升序给出,left/right 为 -1 表示无对应子节点)。

输出描述

返回路线经过的节点 id 序列(从根 1 开始到叶子结束)组成的数组;若无合法路线返回空数组 []。

样例

用例输入 1

7,3,1,800,[[1,2000,2,3],[2,1500,4,5],[3,2400,6,7],[4,900,-1,-1],[5,2300,-1,-1],[6,2100,-1,-1],[7,2800,-1,-1]]

用例输出 1

[1,3,6]

用例解释 1

          [1:2000]
         /        \
    [2:1500]      [3:2400]
     /     \       /      \
[4:900] [5:2300] [6:2100] [7:2800]

4 条路线的分析(α=3,β=1,S=800):

  • 1->2->4:下 500(×1=500)+ 下 600(×1=600)= 1100;2000−900=1100,跨度超限
  • 1->2->5:下 500(×1=500)+ 上 800(×3=2400)= 2900;2300−1500=800,合法
  • 1->3->6:上 400(×3=1200)+ 下 300(×1=300)= 1500;2400−2100=300,合法
  • 1->3->7:上 400(×3=1200)+ 上 400(×3=1200)= 2400;2800−2000=800,合法

1->2->4 虽然体力消耗最低(1100),但海拔跨度 1100 超过安全阈值 800,被淘汰;合法路线中 1->3->6 总消耗 1500 最小,故选之。

用例输入 2

3,1,1,100,[[1,2000,2,3],[2,1000,-1,-1],[3,3000,-1,-1]]

用例输出 2

[]

用例解释 2

   [1: 2000]
   /       \
[2: 1000] [3: 3000]

2 条路线分析(α=1,β=1,S=100):

  • 1->2:海拔跨度 1000 > 安全阈值 100,不合法
  • 1->3:海拔跨度 1000 > 安全阈值 100,不合法

故没有合法路线,按约定输出空数组 []。

来源

本题来源于网络、非官方材料、仅供学习交流,侵删




🧠 解题思路

第一步:题目在问什么

从根(1 号)走到某个叶子(左右孩子都没有的节点)就是一条路线。每走一段:上坡消耗 alpha × 高差,下坡消耗 beta × 高差。路线上最高海拔减最低海拔不能超过 S。在合法路线里找总消耗最小的;消耗相同时,选节点编号序列字典序更小的;没有合法路线返回空数组。

第二步:每个节点只需要记三个数

树上每个节点只有一个父节点,从根走到它的路线是唯一的。所以“走到这个节点为止”的情况可以直接记在节点上:

  • cost[c]:从根走到 c 的总消耗;
  • hi[c]、lo[c]:这一路上的最高、最低海拔。

它们都能从父节点 u 一步算出来:

  • cost[c] = cost[u] + 这一段的消耗(val[c] > val[u] 是上坡,用 alpha 乘高差;否则是下坡,用 beta 乘高差);
  • hi[c] = max(hi[u], val[c]),lo[c] = min(lo[u], val[c])。

再用 parent[c] = u 记下父节点,最后可以从叶子倒推回根得到整条路线,不用在每个节点都复制一份路径。复制路径的话,树是一条长链时内存会爆。

第三步:DFS 走遍所有节点

用**深度优先搜索(DFS)**从根往下走,每个节点算出上面三个数。走到叶子时,如果 hi − lo ≤ S,这条路线合法,就和当前最优比较。

树最深可达 10⁴ 层,Python 递归会超过默认深度上限,所以用栈代替递归:弹出一个节点,算好它孩子的三个数,再把孩子压进栈。

第四步:消耗相同时怎么选字典序小的

展开一个节点时,先访问编号小的孩子(栈是后进先出,所以先压编号大的、后压编号小的)。这样 DFS 遇到叶子的先后顺序,正好就是路线字典序从小到大的顺序。

所以只在“消耗严格更小”时才替换答案:消耗相同时,先遇到的那条字典序更小,保留它就对了。

最后从最优叶子沿 parent 一路倒推回根,再把顺序反过来,就是答案路线。

用样例 1 走一遍

alpha = 3,beta = 1,S = 800。节点海拔:1:2000,2:1500,3:2400,4:900,5:2300,6:2100,7:2800;1 的孩子是 2、3,2 的孩子是 4、5,3 的孩子是 6、7。

路线每段消耗总消耗最高 − 最低合法?
1 → 2 → 4下 500 → 500,下 600 → 60011002000 − 900 = 1100超过 800,不合法
1 → 2 → 5下 500 → 500,上 800 → 240029002300 − 1500 = 800合法,当前最优
1 → 3 → 6上 400 → 1200,下 300 → 30015002400 − 2000 = 400合法,更小,替换
1 → 3 → 7上 400 → 1200,上 400 → 120024002800 − 2000 = 800合法,但不更小

表里按 DFS 遇到叶子的顺序列出。最优叶子是 6,倒推 6 → 3 → 1,反过来得到 [1, 3, 6]。

⚠️ 易错点

  • 叶子要左右孩子都是 −1,只有一个孩子的节点不是叶子。
  • 海拔跨度是整条路线的最高减最低,不是相邻两点的高差。
  • 上坡用 alpha、下坡用 beta,别弄反。
  • 消耗相同时比较整条路线的字典序:先访问编号小的孩子,并且只在严格更小时替换。
  • 不要在每个节点复制整条路径,长链形状的树会让时间和内存变成 O(n·h)。
  • 没有合法路线时返回空数组。

⏱️ 复杂度

时间复杂度:O(n),每个节点入栈、出栈各一次,最后倒推路线 O(h),h 是树高。
空间复杂度:O(n),各节点的 cost、hi、lo、parent 和栈。

💻 参考代码(Java)

import java.util.*;

class Solution {
    public int[] planRescueRoute(int n, int alpha, int beta, int S, int[][] nodes) {
        // 按 id 建立每个节点的海拔、左子、右子
        int[] val = new int[n + 1];
        int[] lc = new int[n + 1];
        int[] rc = new int[n + 1];
        for (int[] row : nodes) {
            val[row[0]] = row[1];
            lc[row[0]] = row[2];
            rc[row[0]] = row[3];
        }

        // 每个节点到根的路线唯一,累计消耗、最高、最低海拔直接按节点存,并记录父节点
        int[] parent = new int[n + 1];
        int[] hi = new int[n + 1];
        int[] lo = new int[n + 1];
        long[] cost = new long[n + 1];
        hi[1] = lo[1] = val[1];

        int bestLeaf = -1;
        long bestCost = 0;
        // 迭代 DFS(树高可达 10^4,不用递归):先访问编号小的孩子,叶子按路线字典序从小到大出现
        int[] st = new int[n + 1];
        int top = 0;
        st[top++] = 1;
        while (top > 0) {
            int u = st[--top];
            int l = lc[u], r = rc[u];
            if (l == -1 && r == -1) {
                // 消耗严格更小才替换:消耗相同时先出现的路线字典序更小
                if (hi[u] - lo[u] <= S && (bestLeaf == -1 || cost[u] < bestCost)) {
                    bestLeaf = u;
                    bestCost = cost[u];
                }
                continue;
            }
            int first = l, second = r;  // first 为编号大的孩子,先压栈
            if (first != -1 && second != -1 && first < second) {
                first = r;
                second = l;
            }
            for (int c : new int[]{first, second}) {
                if (c == -1) continue;
                int diff = val[c] - val[u];
                parent[c] = u;
                cost[c] = cost[u] + (diff > 0 ? (long) alpha * diff : (long) beta * (-diff));
                hi[c] = Math.max(hi[u], val[c]);
                lo[c] = Math.min(lo[u], val[c]);
                st[top++] = c;
            }
        }

        if (bestLeaf == -1) return new int[0];
        // 沿父节点从叶子倒推回根,倒序填入数组
        int len = 0;
        for (int u = bestLeaf; u != 0; u = parent[u]) len++;
        int[] path = new int[len];
        for (int u = bestLeaf, i = len - 1; u != 0; u = parent[u], i--) path[i] = u;
        return path;
    }
}

💻 参考代码(C++)

class Solution {
public:
    vector<int> planRescueRoute(int n, int alpha, int beta, int S, vector<vector<int>> nodes) {
        // 按 id 建立每个节点的海拔、左子、右子
        vector<int> val(n + 1, 0), lc(n + 1, -1), rc(n + 1, -1);
        for (auto &row : nodes) {
            val[row[0]] = row[1];
            lc[row[0]] = row[2];
            rc[row[0]] = row[3];
        }

        // 每个节点到根的路线唯一,累计消耗、最高、最低海拔直接按节点存,并记录父节点
        vector<int> parent(n + 1, 0), hi(n + 1, 0), lo(n + 1, 0);
        vector<long long> cost(n + 1, 0);
        hi[1] = lo[1] = val[1];

        int bestLeaf = -1;
        long long bestCost = 0;
        // 迭代 DFS(树高可达 10^4,不用递归):先访问编号小的孩子,叶子按路线字典序从小到大出现
        vector<int> st = {1};
        while (!st.empty()) {
            int u = st.back();
            st.pop_back();
            int l = lc[u], r = rc[u];
            if (l == -1 && r == -1) {
                // 消耗严格更小才替换:消耗相同时先出现的路线字典序更小
                if (hi[u] - lo[u] <= S && (bestLeaf == -1 || cost[u] < bestCost)) {
                    bestLeaf = u;
                    bestCost = cost[u];
                }
                continue;
            }
            int first = l, second = r;  // first 为编号大的孩子,先压栈
            if (first != -1 && second != -1 && first < second) swap(first, second);
            for (int c : {first, second}) {
                if (c == -1) continue;
                int diff = val[c] - val[u];
                parent[c] = u;
                cost[c] = cost[u] + (diff > 0 ? (long long) alpha * diff : (long long) beta * (-diff));
                hi[c] = max(hi[u], val[c]);
                lo[c] = min(lo[u], val[c]);
                st.push_back(c);
            }
        }

        vector<int> path;
        if (bestLeaf == -1) return path;
        // 沿父节点从叶子倒推回根,再反转得到路线
        for (int u = bestLeaf; u != 0; u = parent[u]) path.push_back(u);
        reverse(path.begin(), path.end());
        return path;
    }
};

💻 参考代码(Python)

class Solution:
    def planRescueRoute(self, n, alpha, beta, S, nodes):
        # 按 id 建立每个节点的海拔、左子、右子
        val = [0] * (n + 1)
        left = [-1] * (n + 1)
        right = [-1] * (n + 1)
        for row in nodes:
            idx = row[0]
            val[idx] = row[1]
            left[idx] = row[2]
            right[idx] = row[3]

        # 每个节点到根的路线唯一,累计消耗、最高、最低海拔直接按节点存,并记录父节点
        parent = [0] * (n + 1)
        cost = [0] * (n + 1)
        hi = [0] * (n + 1)
        lo = [0] * (n + 1)
        hi[1] = lo[1] = val[1]

        best_leaf = -1
        best_cost = 0
        # 迭代 DFS(树高可达 10^4,不用递归):先访问编号小的孩子,叶子按路线字典序从小到大出现
        stack = [1]
        while stack:
            u = stack.pop()
            l, r = left[u], right[u]
            if l == -1 and r == -1:
                # 消耗严格更小才替换:消耗相同时先出现的路线字典序更小
                if hi[u] - lo[u] <= S and (best_leaf == -1 or cost[u] < best_cost):
                    best_leaf = u
                    best_cost = cost[u]
                continue
            children = [c for c in (l, r) if c != -1]
            children.sort(reverse=True)  # 编号大的先压栈,编号小的先弹出
            for c in children:
                diff = val[c] - val[u]
                parent[c] = u
                cost[c] = cost[u] + (alpha * diff if diff > 0 else beta * (-diff))
                hi[c] = max(hi[u], val[c])
                lo[c] = min(lo[u], val[c])
                stack.append(c)

        if best_leaf == -1:
            return []
        # 沿父节点从叶子倒推回根,再反转得到路线
        path = []
        u = best_leaf
        while u != 0:
            path.append(u)
            u = parent[u]
        path.reverse()
        return path

💻 参考代码(JavaScript)

class Solution {
    planRescueRoute(n, alpha, beta, S, nodes) {
        // 按 id 建立每个节点的海拔、左子、右子
        const val = new Array(n + 1).fill(0);
        const lc = new Array(n + 1).fill(-1);
        const rc = new Array(n + 1).fill(-1);
        for (const row of nodes) {
            val[row[0]] = row[1];
            lc[row[0]] = row[2];
            rc[row[0]] = row[3];
        }

        // 每个节点到根的路线唯一,累计消耗、最高、最低海拔直接按节点存,并记录父节点
        const parent = new Array(n + 1).fill(0);
        const cost = new Array(n + 1).fill(0);
        const hi = new Array(n + 1).fill(0);
        const lo = new Array(n + 1).fill(0);
        hi[1] = lo[1] = val[1];

        let bestLeaf = -1;
        let bestCost = 0;
        // 迭代 DFS(树高可达 10^4,不用递归):先访问编号小的孩子,叶子按路线字典序从小到大出现
        const stack = [1];
        while (stack.length > 0) {
            const u = stack.pop();
            const l = lc[u], r = rc[u];
            if (l === -1 && r === -1) {
                // 消耗严格更小才替换:消耗相同时先出现的路线字典序更小
                if (hi[u] - lo[u] <= S && (bestLeaf === -1 || cost[u] < bestCost)) {
                    bestLeaf = u;
                    bestCost = cost[u];
                }
                continue;
            }
            const children = [l, r].filter((c) => c !== -1).sort((a, b) => b - a);  // 编号大的先压栈
            for (const c of children) {
                const diff = val[c] - val[u];
                parent[c] = u;
                cost[c] = cost[u] + (diff > 0 ? alpha * diff : beta * (-diff));
                hi[c] = Math.max(hi[u], val[c]);
                lo[c] = Math.min(lo[u], val[c]);
                stack.push(c);
            }
        }

        if (bestLeaf === -1) return [];
        // 沿父节点从叶子倒推回根,再反转得到路线
        const path = [];
        for (let u = bestLeaf; u !== 0; u = parent[u]) path.push(u);
        return path.reverse();
    }
}

module.exports = { Solution };
华为OD机试真题 新系统 - 勇攀数字高峰 (Java/Py/C/C++/Js/Go) 本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。 阅读详情

相关推荐

PCIE配置和地址空间

来源:https://www.jianshu.com/p/574e9a2cbc4e 每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下: 图6.1 整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Type 1是Brid.

qq_28643619的博客 4062

Scrum 敏捷框架完全指南

形式化的质量检查清单,只有满足 DoD 的增量才能交付。

Cat_fish_snow的博客 423

Computers & Security 投稿实战:从零到一详解避坑指南

本文详细解析了向《Computers & Security》投稿的全流程避坑指南,包括ORCID账号注册、文件格式统一、Editorial Manager®系统操作技巧等关键步骤。特别强调了cover letter撰写、Declaration of Interest Statement准备以及PDF生成后的检查要点,帮助研究者高效完成投稿流程。

weixin_29228203的博客 676

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 329

agent-browser 安装笔记(OpenClaw)

【代码】agent-browser 安装笔记(OpenClaw)

tiantiantbtb的博客 1243

【人工智能论文发表】基于医学病例文本和多模态大模型的医疗影像分割方法研究

摘要:本研究提出MMS-Former,一种基于级联多模态Transformer的文本引导医学图像分割框架。该模型创新性地将临床文本信息深度融入图像分割全过程,通过SwinUNETR提取视觉特征,ClinicalBERT编码病历文本,并在解码器的每个上采样阶段通过交叉注意力模块实现多级文本特征融合。实验表明,相比纯视觉模型,MMS-Former在Dice系数和IoU指标上分别提升3%以上,在处理边界模糊目标时表现尤为突出。模型还设计了结合Dice损失和图文对比损失的复合目标函数,确保分割精度与语义对齐。代码实

u012133341的博客 141

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 311

Python爬虫:实时交通流量数据爬取与路况分析

随着城市化进程的不断推进,交通流量的管理与预测已成为智能交通系统的重要研究方向。交通流量数据不仅为城市交通管理提供了科学依据,还为驾驶员提供了实时路况信息,帮助其做出更加合理的出行决策。通过爬虫技术,我们可以实时获取城市的交通流量数据,从而分析路况,优化交通管理。在这篇博客中,我们将介绍如何使用Python编写一个爬虫来爬取实时交通流量数据,分析道路的交通状况。我们将使用最新的技术工具来构建爬虫,包括。

2201_76125261的博客 1268

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 330

PostgreSQL:十五. 性能优化

十五. 性能优化 优化简介: PostgreSQL优化一方面是找出系统的瓶颈,提高PostgreSQL数据库整体的性能; 另一方面,需要合理的结构设计和参数调整,以提高用户操作响应的速度; 同时还要尽可能的节省系统资源,以便系统可以提供更大负荷的服务。 PostgreSQL数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统的反应速度。例如: 通过优化文件系统,提高磁盘IO的读写速度; 通过优化操作系统调度策略,提高PostgreSQL的在高负荷情况下负载能力; 优化表结构、索引、查询

数据知道的博客 4万+

7 中望CAD二次开发-标注(一)(ZRX C++)

尺寸标注是CAD设计中最常用的功能之一,软件内置了很多标注功能,可以通过使用这些标注工具,对需要标注的长度、角度等一个个进行标注。但这显然效率很低,学习CAD二次开发,就是要把人从重复的劳动中解放出来,实现批量标注。本文介绍,如何通过二次开发进行标注。

cilvsuanna的博客 340

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 604

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 147

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 24

408 算法 06|堆与 Top-K:最小的 10 个数,到底该用数组还是堆

2022(42) 找 100 万个数里最小的 10 个,官方给了"10 元素有序数组"和"大根堆"两种答案。我把两种都实现并数了比较次数:k=10 时两者几乎打平,k=10000 时堆少 111 倍。另附 2021(42) 计数排序的比较次数与稳定性实测。

m0_56226131的博客 437

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 425

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 174

算法64,字母异位词分组

代码核心思路是:互为字母异位词的字符串,在对其字符进行排序后,一定会得到相同的字符串。因此,可以将排序后的字符串作为哈希表的键(Key)来进行分组。

sheshibenniaodan的博客 195

【MPC 算法】Python 实战:模型预测控制(MPC)算法原理与代码实现

本文介绍模型预测控制(MPC)原理与Python实现。MPC通过滚动优化预测未来状态,结合系统模型、目标函数与约束条件,动态生成最优控制序列。以一阶温度系统为例,使用CVXPY构建凸优化问题,实现加热功率的智能调控。代码包含模型预测、目标函数设计(含温度跟踪与控制平滑惩罚)、输入约束及滚动更新机制。仿真结果表明,MPC能快速稳定温度至目标值60℃,且控制动作平滑合理,体现其在复杂系统中的优越性。

赖德发的博客 48

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 221

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 181

【前缀和+复合离散化】题解:双色矩形(two)_数据结构_算法优化_预处理_二维前缀和_STL_C++算法竞赛

给定一个 $n \times n$ 的黑白棋盘,初始按 $i+j$ 奇偶染色,经 $k$ 个格子颜色翻转后,求子矩形中黑白格子数差的绝对值最大值。由于 $n$ 可达 $10^9$,但 $k \leq 50$,可离散化关键点。枚举所有由修改点构成的矩形及其四边向外扩展(共 $16$ 种扩展方式),利用二维前缀和快速计算变化量,结合奇偶性判断多出的格子颜色,最终取最大绝对差。时间复杂度为 $O(k^4)$,在 $k \leq 50$ 下可行。

YLCHUP的博客 202

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 374

算法62&&63,存在重复元素

判断整数数组中是否有任意元素出现至少两次。:判断数组中是否存在两个。,且索引差值的绝对值。

sheshibenniaodan的博客 96

商业综合体公摊电费分摊算法:512 商户双层权重与尾差实测

公摊电费分摊算法是指把公共回路电量按公示权重拆到每户的规则化计算过程,核心不是权重多精巧,而是每张账单都能被租户手算复现。某珠三角商业综合体 512 户商户实测:固定费与变动费按 4:6 加权,尾差用余数递补压到 0.01 千瓦时精度,24 个月 12288 张账单重算差异为零,月度争议从 31 起降到 2 起。适用边界:商铺与租户已独立装表、公共回路已分项计量的商业综合体适用;末端未装表、靠总表减合计倒推公摊的场景不适用,先把表补齐再谈分摊。

170

考拉兹猜想 - 7

本文通过引入虚数单位重构Collatz猜想的迭代逻辑,指出偶数减半与奇数“乘3加1”的过程在虚数坐标下等价于归结操作。关键在于:乘3加1使奇数跃升至偶数,随后持续减半,而虚数单位代表“无限减1”,实现无限向有限的转化。无论初始值如何,减半始终主导,最终归结为4-2-1循环。该视角消解了正向思维中的速度竞争疑虑,证明归结是必然结果。

杨铸人的博客 50

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 402
上一篇: 2026华为OD机考新系统真题|获取利润第K大的值(2026.11.01)
下一篇: 2026华为OD机考新系统真题|日志规则逆波兰转换(2026.10.28)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值