自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

闻缺陷则喜何志丹

本人拙作《闻缺陷则喜》欢迎指教,可在CSDN下载

  • 博客(2501)
  • 资源 (86)
  • 收藏
  • 关注

原创 【计算几何】libnest2d之选择器

本文介绍一种基于几何与数学的物品装箱算法,核心为PlacementStrategyLike策略适配器,通过enable_if_t实现类型约束,确保仅对整数类型有效。系统支持固定物品放置、旋转、平移与膨胀,并利用FirstFitSelection、FillerSelection及DJDHeuristic等策略进行高效排样。其中,DJD启发式通过尝试顺序、成对/三元组组合及允许渐进浪费,提升装箱率;并行处理根据物品数量与顶点数动态启用,优化性能。整体设计兼顾灵活性与效率,适用于复杂多箱装箱场景。

2026-10-12 07:00:00 681 43

原创 【排样】亲士套料工具箱

亲士套料工具箱基于libnest2d0.4等库,专为AutoCAD 2013+设计,实现二维排样优化。支持多义线自动闭合与弧段拟合,不兼容凹多边形及孔洞。通过配置箱体尺寸、最小间距、旋转角度等参数,智能生成红色箱体并自动排列零件,提升材料利用率。算法采用启发式策略(如DJD、试对组合),兼顾效率与质量。适用于板材切割场景,结合计算几何与优化算法,助力高效排样。

2026-10-08 06:00:00 916 58

原创 博客下载学院导航

【摘要】"亲士CAD工具箱"是一款支持中望CAD2024、AutoCAD2013及以上的辅助工具,提供文本处理(TXT导入/导出、批量编辑)、图形优化(面域修复、自动排料)、三维建模(五角星生成)等实用功能,兼容Windows系统并需.NET框架。另提供独立运行的"亲士ODA工具箱",支持DWG文件文本与CSV互转(仅限2013及以下版本)。开发者何志丹在CSDN分享算法、CAD技术及软件工程经验,并提供《喜缺全书算法册》等学习资源及视频课程(C#/C++入职培训)。相关工具和资料可通过博客、GitCode

2026-08-13 10:57:59 3345 22

原创 测试计划应包括的内容

                                                                 测试计划何志丹收藏1,引言     1。1编写目的     1。2背景     1。3定义      1。4参考资料2,计划     2,1软件说明     2。2测试内容     2,3测试1(标识符)       2,3,1进度安排   

2026-10-14 17:00:00 3459

原创 详细设计说明书的内容要求

详细设计说明书的内容要求何志丹收藏1,引言     1。1编写目的     1。2背景     1。3定义      1。4参考资料2,程序系统的组织结构3,程序1(标识符)说明        3,1程序描述         3,2功能         3,3性能         3,4输入项         3,5输出项          

2026-10-14 07:00:00 3431 1

原创 软件需求说明书应包括的内容

软件需求说明书何志丹收藏1,引言     1。1编写目的     1。2背景     1。3定义      1。4参考资料2,任务概述      2。1目标      2。2用户特点       2。3假定与约束3,需求规定      3。1对功能的规定       3。2对性能的规定           3。2。1精度         

2026-10-13 17:00:00 4561 1

原创 概要设计说明书应包括的内容

                                            概要设计说明书应包括的内容何志丹收藏1,引言         1。1编学目的         1。2背景         1。3定义         1。4参考资料2,总体设计          2,1需求规定          2,2运行环境          2,3基

2026-10-13 07:00:00 5547 2

原创 可行性研究报告应包括的内容

                                    可行性研究报告应包括的内容何志丹收藏  1,引言         1。1编学目的         1。2背景         1。3定义         1。4参考资料 2,可行性研究的前提         2。1要求         2。2目标         2。3条件、假定、限制

2026-10-12 17:00:00 2603

原创 【计算几何】二维排样库libnest2d

本文介绍基于C++11及以上标准的2D排样库libnest2d,涵盖几何处理、类型特性(如remove_reference、remove_cv)、浮点异常值(NAN/INF)处理、并发编程(TBB/OpenMP/std)及模板元编程。重点解析了带孔多边形构造、优化器配置、头文件仅实现(HEADER_ONLY)设计,并通过实例展示物品项(如矩形、凸多边形)添加与主排样流程,强调其在工业级排样中的高效性与可扩展性。

2026-10-05 07:00:00 608 44

原创 【计算几何】Clipper库的ClipperBase类代码赏析

本文介绍基于扫描线算法的几何布尔运算实现,重点阐述活动边表(AEL)与排序边表(SEL)的管理机制。通过遍历局部最小值,动态更新活动边的交点横坐标(curr_x),利用绕数(wind_cnt)和方向(wind_dx)判断区域归属,结合双向链表结构维护输出轮廓。关键细节包括:顶点极值判定(实际为局部最大/小)、水平边处理、重复点剔除及符号函数优化。算法支持开闭多边形与折线输入,适用于裁剪、并集、交集等操作,具备高效性与鲁棒性。

2026-10-01 07:00:00 467 37

原创 【计算几何】对踵点对 旋转卡壳 直径

本文系统阐述凸多边形的几何性质与应用,涵盖切线、对踵点对、直径端点及最小外接矩形等核心概念。基于方向角严格递增性与支撑线原理,推导出直径与最薄截面的求解方法,并证明最小面积外接矩形必有一边与多边形边共线。通过积化和差与凹性分析,确定最优方向在端点取得。算法实现依托C++17,适用于排样优化、碰撞检测等场景,体现“计算几何为骨,排样优化为魂”的工程思想。

2026-09-28 07:00:00 571 38

原创 【计算几何】支撑函数、分离轴定理

本文系统阐述凸多边形支撑函数的性质及其在分离轴定理(SAT)中的应用。支撑函数连续,其对应点必为顶点,且随方向旋转时支撑点按逆时针顺序切换。基于此,两个内部不相交凸多边形最多仅有两个方向支撑函数相同。分离轴定理指出:两凸多边形不相交当且仅当存在一条平行于某边法线的直线,使其投影不重叠。证明基于最近点对与投影不等式,最终得出只需枚举所有边的外法线方向即可完成碰撞检测。该理论广泛应用于计算几何与排样优化中。

2026-09-24 07:00:00 353 43

原创 【计算几何】Clipper的偏移

本文介绍多义线偏移中的拐点类型(斜接、圆角、方角、斜切)与首尾端点类型(平头、方头、圆头、多边形、连接),结合Clipper库实现路径膨胀,通过miterLimit控制尖角转换,支持非零填充规则,并提供C#代码示例,适用于几何处理与图形编辑。

2026-09-21 07:00:00 406 56

原创 【计算几何库】Clipper常用函数及使用的小技巧

Clipper库以高效计算几何为核心,支持C#与C++,通过整数运算保障数值稳定性。可实现椭圆弧模拟、路径平移偏移、三角化及重复/共线点清理,内置Ramer-Douglas-Peucker算法简化曲线。其轻量代码(<1万行)便于研究与集成,适用于排样优化等工业场景,是CAD开发的利器。

2026-09-17 07:00:00 324 44

原创 【计算几何】布尔运算交并补异或

本文基于Clipper库探讨路径面积计算与缠绕数(Winding Number)原理。逆时针路径面积为正,顺时针为负;多路径总面积为各路径面积代数和。通过实例验证:相同矩形反向时面积相消,不重叠时面积相加,重叠时重复计算。引入缠绕数判断点在区域内外,水平射线法结合叉积判定穿越方向。结合FillRule(奇偶、非零、正、负)分析布尔运算结果,明确交集、并集、差集、异或的保留规则,揭示路径方向与填充规则对几何运算的关键影响。

2026-09-14 07:00:00 273 36

原创 【计算几何】闵可夫斯基差演示

本文介绍基于CAD的闵可夫斯基差计算工具,使用Cliper库实现多义线间的几何运算。通过选择两个多义线(无论是否闭合),程序计算其闵可夫斯基差并转换为闭合多义线:逆时针方向为红色外边界,顺时针为黄色内孔。代码基于C#与AutoCAD二次开发,支持Cad2013及以上版本,适用于排样优化等计算几何场景。附有下载链接、操作说明及视频演示。

2026-09-10 07:00:00 1354 60

原创 【计算几何 十五章】可见性图:求最短路径

<think>我们只需要根据内容生成≤150字的文章摘要。需要概括主要知识点:计算几何中机器人最短路径规划,包括点机器人的最短路径为多边形路径,内部顶点为障碍物顶点,可见图构造,旋转扫描线法,平移运动多边形机器人转换为点机器人,时间复杂度O(n nlogn)。注意字数限制。用中文,简洁。</think>本文介绍计算几何中的机器人欧氏最短路径规划。点机器人的最短路径为多边形路径,内部顶点必为障碍物顶点,可通过可见图求解;构造可见图采用旋转扫描线法,基于交点在射影上的连续性。平移运动的多边形机器人可借助闵可夫斯

2026-09-07 09:23:26 1931 50

原创 【栈 运算系统】P3719 [AHOI2017初中组] rexp|普及+

<think>我们只需要根据用户要求生成摘要。用户说“根据以下内容,生成≤150字的文章摘要”,内容是关于P3719题目的描述、知识点和代码。需要提炼出核心:题目是关于正则表达式简化版,求最长全a串长度,用递归+括号匹配,处理|和连接,代码实现了Do2递归,扫描括号外|和括号边界。摘要不超过150字。 需要注意摘要要简洁,涵盖主要信息。可以写:本文介绍P3719 [AHOI2017初中组] rexp,给定含括号、|和a的简化正则表达式,用递归和括号匹配求最长全a串长度。代码实现Do2函数,扫描括号外|和括号

2026-09-05 17:00:00 1906 10

原创 【动态规划】P10726 [GESP202406 八级] 空间跳跃|普及+

<think>我们被要求根据给定内容生成≤150字的文章摘要。内容主要是一个技术博客,关于GESP202406八级“空间跳跃”问题,使用了动态规划。摘要应简洁概括问题、方法和核心代码。注意是“文章摘要”,不是详细解析。字数限制严格,需要精简。 步骤: 识别文章主题:题目“GESP202406 八级 空间跳跃”,涉及C++动态规划。 内容摘要应包括:问题描述(二维空间挡板,求最短时间),解法(动态规划,按高度排序,状态dp[i][0/1]表示到第i块板子左右端点的最小时间),以及代码实现。 控制在150字内。

2026-09-05 07:00:00 1880 9

原创 【动态规划】P3609 [USACO17JAN] Hoof, Paper, Scissor G

<think>我们只需要根据用户请求生成摘要:根据内容生成≤150字的文章摘要。内容是CSDN博客文章关于USACO P3609 Hoof Paper Scissors G,讲解动态规划状态机解法。摘要需简洁,涵盖题目和DP要点。注意字数限制。可以使用中文。</think>本题为USACO“蹄子剪刀布”问题,要求Bassie在最多变换K次手势下最大化胜场。采用状态机动态规划,定义dp[i][j][k]表示前i轮、当前手势j、已变换k次的最大胜场,通过枚举前置状态转移,并用滚动数组优化空间。时间复杂度O(NK

2026-09-04 17:00:00 1853 7

原创 【图论 DFS】P10723 [GESP202406 七级] 黑白翻转|普及+

<think>我们只需要根据内容生成摘要。用户要求"根据以下内容,生成≤150字的文章摘要"。内容是一篇关于GESP题目的解析,包括错误解法、正确解法拓扑排序等。摘要需要简洁概括。注意字数限制。需提取核心:题目、解法要点、错误解法原因、正确思路。比如:本文针对GESP202406七级黑白翻转题,指出错误解法在根节点或全黑子树时失效,提出正确思路:用拓扑排序删除白色叶子,答案=白节点数-被删除的白色叶子数。摘要不超过150字。</think>本文针对GESP202406七级“黑白翻转”题,分析错误解法(按子树

2026-09-04 07:00:00 1940 6

原创 【前缀和】P8865 [NOIP2022] 种花|普及+

如果 len1[r2][c]大于1,len1[r1][c] 大于1 len2[r2][c] >= r2-r1+1 则 ans += (len1[r2][c]-1)*(len1[r1][c]-1)len1[r][c] 记录 (r,c)相右连续0的数量。如果Len2[r2][c] >= 2 ,则以(r2,c)为右下角的方案数为:preSum[r2-2][c]*(len1[r2]-1)以(r2,c)为右下角的方案数:(len1[r2][c]-1)*枚举(r2,c)是C的左下角,(r1,c)是C的左上角。

2026-09-03 17:00:00 1857 4

原创 【计算几何 第十三章】机器人运动规划:随心所欲

所谓的机械手或称作多关节型机器人,由若干段杠件(link)通过关节(joint)联接而成。机械手的一端固定在工作平面上–称为底座(base);另一端则装有手柄(hand)或某种工具。杆件的数目从三至六段不等。关节两种:旋转式关节和柱状关节。前者可以任意转动,后者只能滑进滑去。简化:一,只讨论二维的运动规划问题,运动的环境是平面的一个区域,障碍物和机器人的外形都是多边形。二,环境是静态的,即机器人运动的沿途不会遇到行人。三,机器人对环境也知。本章主要研究哪些只能平移的机器人。

2026-09-03 07:00:00 2534 42

原创 【树上前缀和 图论】P8805 [蓝桥杯 2022 国 B] 机房|普及+

小明发现每台电脑转发、发送或者接受信息需要的时间取决于这台电脑和多少台电脑直接相连,而信息在网线中的传播时间可以忽略。七,对于任意查询a,b,利用树上倍增求其最近公共祖先c。单位时间 (发送方和接收方也会产生这样的延迟,当然如果发送方和接收方都是 同一台电脑就只会产生一次延迟)。六,preSum[i]记录i到0的延迟之和(即前缀和)。台电脑连接起来使得任意两台电脑都直接或者间接地相连。台电脑, 那么任何经过这台电脑的信息都会延迟。四,通过父节点和层次,初始化树上倍增。,电脑和电脑之间有网线连接,一共有。

2026-09-02 17:00:00 1997 8

原创 【动态规划 背包 前缀和 滑动窗口】P6394 樱花,还有你|普及+

你一定会陪我一起看吧,在酥软的阳光下,我会悄悄牵起你的手,感受你熟悉的温度,糟糕,脸儿也不小心被粉嫩嫩的樱花映红的呢。收集一些飘落樱花吧,我想喝樱花茶,还想吃樱饼,你一定要亲手给我做嗷!期间你在任何一棵树收集完樱花后就告诉我,形成的方案都是不同的哦!那就别怪我成全你哦,我会轻跳起来,环住你的脖子,揭起你的口罩,尝一尝你的嘴唇。dp[i][j] 对前i棵樱花树收集了樱花,总共收集了j朵樱花。对了,一定记得带口罩!朵樱花,你可以立刻告诉我,也可以陪我继续向前走,一直到第。三月,武汉大学,樱花就快来了呢。

2026-09-02 07:00:00 1852 11

原创 【差分数组】P10374 [AHOI2024 初中组] 操作|普及+

i<j 机器j可能调用机器i,反之则不会。调用机器x,vDiff[x]++,vDiff[x-1]–。如果是类型二,vDiif[y] += cur,vDiff[x-1] -= cur。调用机器[x,y],vDiff[y]++,vDiff[x-1]–。由于数组中元素的值可能很大,你只需要帮她求出每个元素除以。或者 操作系统:win10 开发环境: VS2022。如果第i个机器是类型一,a[x] += y*cur。个机器的操作各一次,她想知道最后得到的数组。个机器的操作,它操作了第。综上所述,最后得到的数组为。

2026-09-01 17:00:00 1872 4

原创 【前后缀分解】P10087 [ROIR 2022 Day 1] 跳跃机器人|普及+

次跳跃,回到原来的平台,他们认为实验是成功的。开发人员需要确定机器人的最小起始灵敏度是多少,并选择哪个平台作为起始平台。从平台i开始,从s中删除c[i-1]-i-1,将c[i-1]-(n-1)+i放到s中。从平台1开始,从s中删除c[0]-0,将c[0]-(n-1)+1 放到s中。如果有多个最小起始灵敏度对应的起始平台,可以输出任意一个。,机器人可以从最后一个平台跳到第一个平台。本题的n,最大1e7,内存256M,用有序集合,内存很可能超。可以在处理结束时:删除i,而不是处理之前,删除i-1。

2026-09-01 07:00:00 2233 2

原创 【计算几何 十二章】空间二分:画家算法

本文摘要: 本文主要探讨了BSP树(空间二分树)在计算机图形学中的应用及其构造算法。文章首先介绍了z-缓冲算法和画家算法两种隐藏面消除方法,指出BSP树能够有效解决画家算法的排序问题。随后详细定义了BSP树的数据结构及其在二维和三维空间中的构建方法,重点分析了随机化算法在二维BSP构造中的期望时间复杂度(O(nlogn))。文章还讨论了低密度场景下BSP树的优化策略,包括哨兵点的使用。最后指出三维BSP树的最坏情况下规模可能达到O(n²)。全文从理论和算法两个层面系统阐述了BSP树的特性及其在图形处理中的应

2026-08-31 07:00:00 3451 45

原创 从矩形到异形:二维排样到底在“排”什么?

二维排样问题(2D Nesting Problem)是一个经典的组合优化难题,其目标是在二维平面上,将一系列不规则的二维形状(零件)互不重叠地排列在一个母板(如金属板、布料等)内,以最大化材料利用率、最小化废料。这个问题的核心挑战在于其高计算复杂度(属于NP-hard问题),需综合考虑零件形状、材质纹理、切割工艺(如共边切割)等多种约束条件。在工业制造中,二维排样问题广泛应用于:纺织行业、钣金加工、激光切割、木材加工、包装行业。

2026-08-31 06:45:00 2788 12

原创 【计算几何 第十一章】凸包:混合物

数学 几何所谓凸多面体是指这样一类多面体——将其任意一个面扩展成平面,其他所有面都在该平面的同一侧。泼德猜想指出,每个凸多面体都允许自无重叠展开 (Shephard 1975)我们只关心产品的两类成分–不妨称之为A和B。假设混合物ξ1,ξ2,ξ3\xi_1,\xi_2,\xi_3ξ1​,ξ2​,ξ3​。ξ1\xi_1ξ1​中含有10%的A,35%的B;ξ2\xi_2ξ2​含有16%的A,20%的B;ξ3\xi_3ξ3​,含有7%的A、15%的B分成。将ξ1,ξ2,ξ3\xi_1,\xi_2,\xi_3ξ1

2026-08-27 07:00:00 3873 56

原创 【计算几何 第10章】更多几何数据结构:截窗

本文介绍了计算几何中的几种重要数据结构和算法。主要内容包括:1)快速选择算法(Quickselect)及其优化方法;2)线段树的基本概念;3)优先查找树的构建和查询方法,用于处理二维点集的在线查询;4)区间树的原理和应用,用于查询与矩形相交的线段。文章还讨论了这些算法的时间复杂度和空间复杂度,其中优先查找树的查询时间复杂度为O(K+logN),区间树为O(logn+k)。最后提供了测试环境和相关数学知识的预备内容。这些算法在计算几何和计算机图形学中有广泛应用。

2026-08-24 07:00:00 3216 61

原创 【计算几何 第九章】Delaunay三角剖分:高度插值

本文介绍了与Delaunay三角剖分相关的数学几何知识。首先阐述了泰勒斯定理和圆周角定理,证明了圆周角与圆心角的关系。接着讨论了四点共圆的条件和圆内外的位置关系。正文部分重点讲解了平面点集三角剖分的概念,包括极大平面子区域划分、角度向量比较等。通过定理9.1证明了三角剖分的性质,并引入合法三角剖分和边翻转操作的概念。最后指出翻转操作能优化三角剖分,使角度向量单调增加,最终得到更优解。文章为理解Delaunay三角剖分奠定了理论基础。

2026-08-20 07:00:00 3613 66

原创 【高等几何 线性代数】正交矩阵、正交变换、齐次矩阵

本文系统探讨了二阶正交矩阵与几何变换的关系。首先定义了正交矩阵的基本性质,指出旋转矩阵和反射矩阵都是正交矩阵的特例。通过数学推导证明所有二阶正交矩阵均可表示为旋转或反射矩阵。文章引入齐次矩阵处理平移变换,并分析了仿射变换的等效操作顺序问题,提出任意仿射变换可分解为缩放、旋转和平移的组合。最后提及更复杂的矩阵分解方法(QR分解、极分解)和高级变换表示,为CAD等应用场景中的几何变换问题提供了理论基础。文中包含详细的矩阵运算示例和几何解释,适合需要深入理解二维几何变换的读者。

2026-08-17 07:00:00 4933 70

原创 【计算几何 八章】排列与对偶:光线跟踪超采样

本文研究了单位正方形内点集的半平面差异值问题,通过几何分析和对偶变换等方法,给出了计算最大差异值的有效算法。主要结论包括: 差异值最大半平面必经过至少一个点或两个点 提出了基于对偶变换的O(n²)时间算法 分析了直线排列在差异值计算中的作用 证明了排列复杂度上界为O(n²) 研究结果为计算机图形学中的抗锯齿问题提供了理论基础,通过建立采样点分布与半平面覆盖面积的量化关系,为改进像素着色算法提供了新思路。

2026-08-13 07:00:00 3881 50

原创 【计算几何】第七章 Voronoi图:邮局问题

本文介绍了Voronoi图(沃罗诺伊图)的定义、性质及其构造算法。Voronoi图将平面划分为若干子区域,每个子区域包含到特定基点距离最近的所有点。文章首先阐述了Voronoi图的基本概念和欧拉公式的应用,随后详细讨论了平面扫描算法(Fortune算法)的构造过程,包括基点事件和圆事件的处理。此外,还探讨了线段集Voronoi图的复杂性,描述了不同断点类型及其对应的几何特征。该算法的时间复杂度为O(nlogn),空间复杂度为O(n)。文章还简要提及了退化情况的处理方法。

2026-08-10 07:00:00 3051 54

原创 【高等几何 梅向明 第一章】正交变换与仿射变换

本文摘要:文章系统介绍了点变换与正交变换的基本概念和性质。首先定义了集合间的对应关系和点变换的基本概念,包括变换的乘积、恒等变换和逆变换。随后重点讨论了正交变换,通过平移、旋转和反射等实例展示其特性,并证明正交变换保持点间距离不变,能够将共线点映射为共线点且保持角度不变。文章详细推导了正交变换的代数表示形式,并证明了满足正交条件的线性变换必为正交变换。这些内容为几何变换理论提供了坚实的数学基础。

2026-08-06 07:00:00 3539 54

原创 【计算几何 第六章】点定位:找到自己的位置

本文主要研究平面子区域中的点定位问题,提出基于梯形图的随机增量式算法。通过引入垂线将平面分割为垂直条带,利用二分查找可在O(logn)时间内确定查询点位置。梯形图T(S)最多含6n+4个顶点和3n+1个梯形。算法通过逐步插入线段构建梯形图和相关查找结构D(一个有向无环图),支持高效点查询。关键点包括梯形性质分析、邻居关系定义以及增量更新策略,确保在O(nlogn)期望时间内完成构造,为几何计算提供有效解决方案。

2026-08-03 07:00:00 2953 53

原创 【C++数论】P10403 「XSOI-R1」跳跃游戏|普及+

摘要 题目要求计算在特定条件下,从数组中选择若干区间能获得的最大经验值。经验值计算规则为: 当区间gcd为2且长度为偶数时,经验值为区间长度; 当区间gcd为3且长度为奇数时,经验值为区间长度; 其他情况经验值为0。 解法利用数论知识,通过预处理每个位置的区间gcd值,高效计算满足条件的区间贡献。时间复杂度为O(n log n),适用于大规模数据(n ≤ 6×10^5)。

2026-07-30 08:06:48 2975 52

原创 【计算几何第五章】正交区域查找:数据库查询

本文介绍了空间数据结构的几种关键算法及其应用。首先讨论了一维区域查找,通过排序和二分查找实现高效查询。接着详细讲解了kd树(k-dimensional tree)的构建与查询方法,分析了其O(√n + k)的时间复杂度。然后介绍了区域树(二维线段树/树套树)结构,阐述了其在多维查询中的优势。最后扩展到高维空间,说明区域树在d维空间中的存储和查询性能。文章还探讨了处理坐标相同点的技巧,并提供了相关数学知识和算法学习资源。这些数据结构在计算机图形学、地理信息系统等领域有广泛应用。

2026-07-27 07:00:00 3584 68

原创 【计算几何 第四章】线性规划:铸模制造

本文探讨了半平面几何与线性规划在计算几何中的应用。首先介绍了半平面的数学定义及其几何表示,分析了凸多边形的性质。然后将三维铸造问题转化为二维半平面求交问题,证明了铸造可行性的判定条件。针对半平面求交问题,提出了线性时间和O(nlogn)时间复杂度的算法。进一步讨论了二维线性规划的递增式和随机化解法,分析了有界和无界情况下的处理方法。最后简要提及了最小外接圆问题与三维线性规划的联系。这些几何算法在二维和三维空间中的约束求解问题上展现出高效性和理论保障。

2026-07-23 07:00:00 2247 68

喜缺全书算法册 C++实现

电子书和博文的分工。电子书以:原理、正确性证明、总结为主;博文(题解)以思路、源码、封装类(模板)、测试用例、流程图为主。 当前阶段:以二分查找为主,前缀和为辅,之后会有其它算法的。文字算法见我的博文,视频算法见我的学院课程。 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,两者长度都为 n 。每次操作中,你可以选择交换 nums1 中任意两个下标处的值。操作的 开销 为两个下标的和。你的目标是对于所有的 0 <= i <= n - 1 ,都满足 nums1[i] != nums2[i] ,你可以进行 任意次 操作,请你返回达到这个目标的 最小 总代价。请你返回让 nums1 和 nums2 满足上述条件的 最小总代价 ,如果无法达成目标,返回 -1 。 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足,我们称这些塔是 美丽 的:

2023-09-17

喜缺全书之平凡的经历最新版

《闻缺陷则喜》这本书由何志丹与魏家瑜共同创作,其核心理念是通过暴露和面对问题,促进个人和团队的成长。书名源于作者们对于缺陷的积极态度,他们认为缺陷是学习和进步的契机,而不是阻碍。在当前知识爆炸的时代,分享和交流成为提升效率的关键。 书中涵盖的工作经历部分,作者强调了工作中遇到的挑战和陷阱,这些经历不仅对于技术开发者,如C/C++/VC程序员,具有宝贵的参考价值,也适用于任何行业。作者提到,许多工作中需要但网络上难以找到的信息,正是他们书籍想要填补的知识空白。他们提倡通过阅读、实践和再传授来深化理解和掌握知识,比如,通过反复阅读多本书籍,甚至制作教学视频,以教促学。 生活中的点滴和女儿的成长部分,反映了作者对个人生活和家庭教育的关注。这部分内容可能包含如何平衡工作与家庭,以及如何培养孩子独立思考和解决问题的能力。作者的人生态度和教育观念,可能会给读者提供关于如何在生活中学习和成长的新视角。 投资理财的亏损与教训部分,则揭示了作者在财务管理和投资上的经验和反思。他们可能分享了投资失败的案例,从中提炼出的教训,旨在帮助读者避免同样的错误,提高投资决策的明智程度。这部分内容对于希望提升理

2023-08-18

堆优化迪氏最短单源路径原理及C++实现

4.1. 时间复杂度 O(ElogE),E是边数。适用与稀疏图。 4.2. 使用前提 边的权为正。可以非连通,非连通的距离为-1。 4.3. 原理 优选队列(小根堆)记录两个数据:当前点到源点距离,当前点。先处理距离小的点;如果距离相等,先处理谁都可以。可以用pair记录,不用重写小于。优先队列只记录如下情况的距离: 一,{0,源点}。 二,任意点的最短距离和可以直达的边。 如果是有向图,则入队数量等于边数,计算出起点最短路径的那一轮。无向图,则翻倍。显然出队数量等于入队数量。优先队列入队和出队时间复杂度都是O(logn),故总时间复杂度为O(nlogn)。

2023-10-03

.有向图计数优化版原理及C++实现

不需要拓扑排序,也不需要并集查找,直接dfs了。完成以下三个职责: 一,DFS那些端点在环上。 二,DFS环上各点此环的长度。 三,DFS非环上各点。

2023-10-02

有向图访问计数的原理及C++实现

现有一个有向图,其中包含 n 个节点,节点编号从 0 到 n - 1 。此外,该图还包含了 n 条有向边。 给你一个下标从 0 开始的数组 edges ,其中 edges[i] 表示存在一条从节点 i 到节点 edges[i] 的边。 想象在图上发生以下过程: 你从节点 x 开始,通过边访问其他节点,直到你在 此过程 中再次访问到之前已经访问过的节点。 返回数组 answer 作为答案,其中 answer[i] 表示如果从节点 i 开始执行该过程,你可以访问到的不同节点数。 2 <= n <= 100000 无自环。

2023-10-01

朴素迪氏最短单源路径的原理及C++源码及测试用例

Dijkstra算法,翻译为迪杰斯特拉或狄克斯特拉。在下驽钝,记不住如此长的翻译,故简称迪氏。 3.1.时间复杂度 O(n2),端点数的平方。 3.2.使用前提 边的权为正。可以非连通,非连通的距离为-1。

2023-09-30

01BFS最短距离原理和C++实现

n个端点的无向图,编号范围[0,n)。Edges0表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有路联接。Edges1表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有损坏的路连接。要想让s和d之间至少有一条通道,最小需要维修多少条路。如果无法到达,请返回-1。可能有环,但无自环,重边,可能不联通。

2023-09-29

深度优先搜索(BFS)的原理和C++实现

n个端点的无向图,编号范围[0,n)。每个端点最多4条出边。edges表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有边联接。求s到d的最少需要经过多少条边。如果无法到达,请返回-1。可能有环,但无自环,重边,可能不联通。

2023-09-28

美丽塔单调栈O(n)解法

给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足,我们称这些塔是 美丽 的: 1 <= heights[i] <= maxHeights[i] heights 是一个 山状 数组。 如果存在下标 i 满足以下条件,那么我们称数组 heights 是一个 山状 数组: 对于所有 0 < j <= i ,都有 heights[j - 1] <= heights[j] 对于所有 i <= k < n - 1 ,都有 heights[k + 1] <= heights[k] 请你返回满足 美丽塔 要求的方案中,高度和的最大值 。

2023-09-27

较难算法: 美丽塔 时间复杂度O(nlongn)

给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足,我们称这些塔是 美丽 的: 1 <= heights[i] <= maxHeights[i] heights 是一个 山状 数组。 如果存在下标 i 满足以下条件,那么我们称数组 heights 是一个 山状 数组: 对于所有 0 < j <= i ,都有 heights[j - 1] <= heights[j] 对于所有 i <= k < n - 1 ,都有 heights[k + 1] <= heights[k] 请你返回满足 美丽塔 要求的方案中,高度和的最大值 。

2023-09-24

让数组不相等的最小总代价

让数组不相等的最小总代价 可运行源码,VS2022 C++17 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,两者长度都为 n 。每次操作中,你可以选择交换 nums1 中任意两个下标处的值。操作的 开销 为两个下标的和。你的目标是对于所有的 0 <= i <= n - 1 ,都满足 nums1[i] != nums2[i] ,你可以进行 任意次 操作,请你返回达到这个目标的 最小 总代价。请你返回让 nums1 和 nums2 满足上述条件的 最小总代价 ,如果无法达成目标,返回 -1 。

2023-09-23

《闻缺陷则喜》之《主册》

闻缺陷则喜 1 第一章:平凡的经历 5 第二章:观念与想法 5 1. 基础 6 1.1. 认知鸿沟 6 2. 传播 6 3. 沟通 6 3.1. 淡化对错 6 3.2. 不要随意批评别人 6 3.3. 参与感 6 3.4. 如果错了,马上认错 7 3.5. 从别人的立场说服对方 7 3.6. 具体到场景 7 4. 交往与合作 7 4.1. 双赢思维 7 4.2. 合作层次 8 4.3. 能力+信息(情报)+资源=成就 8 5. 工作相关 8 5.1. 金融骗局 8 5.2. 对小白而言创业比股票危险的多 9 5.3. 投资比创业稳妥的多 9 5.4. 程序员干不到30岁 9 5.5. 忠诚度与能力 10 5.6. 拒绝无意义加班 10 5.7. 内卷的历史 11 5.8. 关于社保 11 6. 家庭相关 12 6.1. 我的遗产 12 6.2. 金钱观 12 6.3. 借贷观 13 6.4. 女儿的婚姻 13 6.5. 轶事 14 6.6. 生育观 15 6.7. 教育观 15 6.8. 不要因为担心亲友不舒服,而不指出错误 16 7. 工作技巧 16 7.1. 八二原理 16 8.

2022-09-10

二分查找旋转数组源码和视频

包括视频和三个版本的源码(初始、寻找右数组左边界、完成) 已知整数数组nums,先按升序排序后,再旋转。旋转k位后,元素分别为nums[k],nums[k+1]...nums[0]...nums[k-1]。请查找target 是否存在,如果存在返回所在索引;否则返回-1。假定nums没有重复的元素。 假定排序后的数组为{1,2,3,4,5}。 旋转0位:不变。 旋转1位:{2,3,4,5,1} 旋转2位:{3,4,5,1,2} 旋转3位:{4,5,1,2,3} 旋转4位:{5,1,2,3,4} 1.解题思路 观察后,可以得到如下结论: 旋转数组,可以拆分成左右两个升序数组,且左数组的任意元素都大于右数组的任意元素。 分两步: 一,找到数组的分界线RBegin,[0,RBegin)是左数组,[RBegin,n)是右数组。特殊情况:只有一个升序数组,则RBegin为0,左数组为空。 如果是小于等于nums.back(),在右边找;否则在左边找。升序寻找元素之前已经讲过了,就不累赘了。

2023-08-20

C# 获取C++的连续数据

C# 获取C++的连续数据。 两种方式:1,返回C++指针,2,将值存到C#的数组中。

2022-04-02

闻缺陷则喜版本号20220123

包括:问题定义、系统分析、架构、概要设计、详细设计、测试等!

2022-01-23

闻缺陷则喜2021年12月26.doc

闻缺陷则喜,本人拙作,注将软件工程。

2021-12-26

闻缺陷则喜20211205

包括:问题定义、系统分析、架构、概要设计、详细设计、测试等!

2021-12-07

Windows性能监控工具Perfmon使用

Windows性能监控工具Perfmon使用

2021-10-31

关于halcon膨胀腐蚀开闭.doc

关于halcon膨胀腐蚀开闭

2021-11-14

简单的C#类 生成对应的C#类

开发工具: C#2013 功能: 针对简单的C#类,生成对应的非托管C++类,并生成托管C++的转换函数。 应用场景: 界面层、数据层C#,逻辑层C++。 简单的C#类:类型只包括 double string List

2021-11-07

【软件架构师何志丹】亲士套料工具箱亲士CAD工具箱亲士ODA工具箱,全免费,定制发站内消息

内容概要:本文介绍了CAD开发专家何志丹的技术背景、项目经验及未来发展方向,重点展示了其在CAD二次开发、计算几何与二维排样领域的深入实践。他精通C++与C#,具备丰富的AutoCAD、中望CAD、BricsCad等平台的二次开发经验,主导开发了“亲士套料工具箱”“亲士ODA工具箱”等多个高效工具,利用Clipper、Boost等几何库实现自动排样、图形优化、文本处理等功能,显著提升材料利用率5%~15%。同时,他在算法能力上表现突出,力扣周赛成绩优异,致力于将通用算法与计算几何结合,推动2D排样技术的智能化发展。; 适合人群:具备C++/C#编程基础,从事CAD二次开发、智能制造、工业软件研发的工程师或技术负责人,以及对计算几何、NP-Hard排样问题感兴趣的开发者。; 使用场景及目标:① 开发高效CAD自动化插件,替代重复手工操作,提升制图效率与精度;② 实现2D自动排样系统,优化板材利用率,应用于家具、船舶、建筑等行业;③ 探索计算几何与工业软件融合路径,构建稳定可靠的几何处理引擎。; 阅读建议:此资源不仅涵盖具体工具的实现与使用,还体现了从需求分析、架构设计到算法集成的完整工程思维,建议结合其开源项目、博客与代码仓库进行实践学习,并关注其在算法与数学理论方面的持续积累。

2025-09-27

亲士套料工具箱2026.10.7.0

排样套料工具箱。初版支持AutoCad2013+,基于libnest2d0.4,clipper, nplot,boost。不支持凹多边形,凹多边形被填充凸多边形。不支持孔洞。只支持多义线,非闭合多义性将自动闭合,多义线的弧将用线段模拟。并根据箱子的框高,绘制新箱子,将选择的多义线,移动到箱子中,保留多义性的颜色等属性。 排样是NP-Hard问题,无法在有限时间找到最优解,许多时候明显的最优解都没找到。

2026-10-07

亲士CAD工具箱支持中望CAD2022、AutoCAD2013、BricsCAD v16及以上版本

CAD亲士工具箱有功能选项卡和菜单。如果功能选项被关闭,请用Robbon命令打开。 文本处理: 1.1 避免笔误:支持从TXT文件直接读取文本,避免手动输入出错。TXT文件可选择,内容可排序,可过滤。可以插入当前文件的文件名,不带扩展名。修改《文本.txt》后,无需重启CAD,下次命令生效。插入时,可以选择是否有后缀,如果后缀自动从1开始编号,后缀和原始文本之间用减号分开。 1.2 批量编辑:可批量修改单行文本或多行文本的字号大小,并保持文本中心点不变。 1.3 导入、导出文本:典型应用场景:一,翻译。二,和其他系统交互。a,导入到csv。b,手动或自动修改csv。c,从csv导入文本。csv支持两种格式:a,带bom的UTF8。b,ANSI默认编码。 1.4 导出属性引用到csv,并导入。 图形编辑与优化: 2.1 优化图形:可处理因距离过近导致无法创建面域的图形,通过移动端点使线段与圆弧精确重合,还能删除重复线条。 2.2 移动实体:微移部分实体时,可延长至与未选择实体相同的端点。 2.3 自动排料:能将源边框内的实体,按任意顺序重新排列到指定的目标边框中。源边框和目标边框都可以多选。 2.4 图层清理:支持删除指定图层外的所有图层内容。 2.5 标注翻转:可将选中的标注移动到指定直线下方,用于手动避让。 2.6 增加外墙线。 三维与建模辅助: 3.1 提供基础的三维零件建模功能,例如内置了五角星的快速生成工具。 3.2 支持三维建模功能,演示了一个较复杂的零件。 系统与兼容性: 软件环境:支持AutoCAD 2013及以上版本,中望CAD 2022及更高版本,BricsCad v16到v21。安装盘会在线安装.NetFrame。 运行系统:支持Windows操作系统。 安

2026-01-02

亲士数学演示工具箱.exe

演示数学功能,如计算几何的知识点。支持AutoCad2013及更高版本。确保已安装AutoCad2013+的任意版本后,安装此版本。

2026-09-09

亲士ODA工具箱不依赖于CAD

使用方法:解压亲士ODA工具箱.zip,运行QinShiToolODA.exe。不依赖中望Cad和AutoCad。 支持:AutoCAD 2013/LT2013 Drawing (".dwg)及以下版本。 不支持:AutoCAD 2018 Drawing (".dwg)及以上版本。 不支持大文件,超过2G的文件一定无法处理。 功能: 一,从dwg种导出文本到csv。从csv中导入文本到dwg。

2026-06-21

本博文算法对应源码单元测试用例

电子书、博文和附录分工。电子书以总结、原理、正确性证明为主;博文(题解)以思路、源码、封装类(模板)、测试用例、流程图为主。附录:封装好的类、小题题解、很长的源码和单元测试。 本书针对读者:刚刚入职的软件工程师,假定已经学完了“C++”和“算法与数据结构基础”。工程师和学生不同,工程师的首要目标的实用。工程师用到的知识是未知的,很多都是临时用一下,之后几年甚至一辈子都不会用到。受精力的限制,不可能将所有遇到的知识全部学完。本文会有超多用例,方便工程师从最相近的样例开始修改。所以,本文先讲如何使用,再讲原理,最后讲样例;设计(如:流程图)和源码会作为附录提供。

2024-07-05

位运算、状态压缩、枚举子集汇总.html

位运算、状态压缩、枚举子集汇总.html

2024-04-27

本博客配套流程图,会经常更新

Bob 站在单元格 (0, 0) ,想要前往目的地 destination :(row, column) 。他只能向 右 或向 下 走。你可以为 Bob 提供导航 指令 来帮助他到达目的地 destination 。 指令 用字符串表示,其中每个字符: 'H' ,意味着水平向右移动 'V' ,意味着竖直向下移动 能够为 Bob 导航到目的地 destination 的指令可以有多种,例如,如果目的地 destination 是 (2, 3),"HHHVV" 和 "HVHVH" 都是有效 指令 。 然而,Bob 很挑剔。因为他的幸运数字是 k,他想要遵循 按字典序排列后的第 k 条最小指令 的导航前往目的地 destination 。k 的编号 从 1 开始 。 给你一个整数数组 destination 和一个整数 k ,请你返回可以为 Bob 提供前往目的地 destination 导航的 按字典序排列后的第 k 条最小指令 。

2024-04-24

利用二分查找解决H指数问题

利用二分查找解决H指数问题。

2024-01-01

搜索矩阵C++实现:二分查找Z形查找

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。

2023-12-17

长度最短的子数组C++实现

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 输入:target = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。 示例 2: 输入:target = 4, nums = [1,4,4] 输出:1 示例 3: 输入:target = 11, nums = [1,1,1,1,1,1,1,1] 输出:0 提示: 1 <= target <= 109 1 <= nums.length <= 105 1 <= nums[i] <= 105

2023-12-10

[二分查找双指针]LeetCode881: 救生艇

给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船数 。

2023-12-03

两数之和 - 输入有序数组

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。 以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。 你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

2023-11-26

C++二分查找算法:132 模式

给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。 如果 nums 中存在 132 模式的子序列 ,返回 true ;否则,返回 false 。

2023-11-12

C++算法:第 N 位数字原理、源码、测试用例

给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] 中找出并返回第 n 位上的数字。 示例 1: 输入:n = 3 输出:3 示例 2: 输入:n = 11 输出:0 解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是 0 ,它是 10 的一部分。 提示: 1 <= n <= 231 – 1

2023-11-05

C++二分查找算法应用:最长递增子序列 原理、源码、测试用例

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,18] 输出:4 解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。 示例 2: 输入:nums = [0,1,0,3,2,3] 输出:4 示例 3: 输入:nums = [7,7,7,7,7,7,7] 输出:1 参数范围: 1 <= nums.length <= 2500 -104 <= nums[i] <=104

2023-10-29

二分应用:峰值查找 原理、源码、测试用例

1. 题目 长度为n的数组nums,请返回任意一峰值的索引。符合以下条件之一i便是峰值的索引。 n等于1 i等于0 n>1 i等于0 nums[i] >nums[i+1] n>1 i等于n-1 nums[i] > nums[i-1] 0<i<n-1 nums[i]>nums[i-1] nums[i]>nums[i+1] 题目保证nums[i]不等于nums[i+1]。 2. 分析 假定: nums[left,r)符合nums[left]>nums[left-1],且nums[r-1]>nums[r]。显然初始情况nums[0,n)符合。 推论一:如果[left,r)的长度为1,则left就是返回的索引。 推论二:假定left < mid<r。如果mid[mid] > mid[mid-1],则nums[mid,r)也符合假定。如果mid[mid] < mid[mid-1],则nums[left,mid)也符合假定。 推论三:推论二也可以也可以理解成分别抛弃[left,mid)和[mid,r)。令mid = left+(r-left)/2,由于r-left>=2,所以left<mid<

2023-10-22

C++算法:前缀和基础

长度为n的数组nums,共有n+1个以nums[0]开始的子数组。索引范围分别为[0,i),i取值区间[0,n]。preSum[i]记录子数组[0,i)的和。比如:nums = {1,2,3,4},则preSum = {0,1,3,6,10}。通过preSum,我们可以求任意nums的子数组和。子数组[i,j)等于子数组[0,j)减去[0,i),也就是子数组[i,j)的和等于preSum[j] – preSum[i]。如果i等于j,则preSum[i]-preSum[i],和为0,符合计算公式。如果i大于j,则非法,需要提前排除。

2023-10-15

时间复杂度O(40n*n)的C++算法:修改图中的边权

给你一个 n 个节点的 无向带权连通 图,节点编号为 0 到 n - 1 ,再给你一个整数数组 edges ,其中 edges[i] = [ai, bi, wi] 表示节点 ai 和 bi 之间有一条边权为 wi 的边。 部分边的边权为 -1(wi = -1),其他边的边权都为 正 数(wi > 0)。 你需要将所有边权为 -1 的边都修改为范围 [1, 2 * 10^9] 中的 正整数 ,使得从节点 source 到节点 destination 的 最短距离 为整数 target 。如果有 多种 修改方案可以使 source 和 destination 之间的最短距离等于 target ,你可以返回任意一种方案。 如果存在使 source 到 destination 最短距离为 target 的方案,请你按任意顺序返回包含所有边的数组(包括未修改边权的边)。如果不存在这样的方案,请你返回一个 空数组 。 注意:你不能修改一开始边权为正数的边。

2023-10-14

多源最短路径的原理及C++实现

当一层循环执行完后,m_vMat[i1][i2]表示经过[0,i)中的任意个点的最短距离。 初始状态下, m_vMat[i1][i2]表示直达的最小距离,也就是经过0个点。 通过[0,i)中任意个点,i1到i2的最短路径记为PrePathi1i2,通过[0,i+1)中任意个点,i1到i2的距离的路径为Pathi1i2,如果Path不经过Pathi1i2,则和PrePathi1i2相同。如果经过则可以拆分成{i1…i}+{i…i2},显然{i1…i}是PrePathi1i,{i…i2}是PrePathii2,否则替换成PrePathi1i和PrePathii2。 m_vMat同时表示PreMath和Math,如果m_vMat[i1][i]或m_vMat[i][i2]已经更新,会带来错误的结果么?结果是不会,会更新但值不变。 当i1等于i时: m_vMat[i][i2] = min(…, m_vMat[i][i] + m_vMat[i][i2]); 由于m_vMat[i][i]为0,所以右式就是左式。 当i2等于i时,类似。

2023-10-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除