greedy相关内容

动态规划和贪婪方法有什么区别?

动态编程和贪婪方法在用法上的主要区别是什么? 据我所知,贪婪方法有时会给出最佳解决方案;在其他情况下,动态规划 方法会提供最佳解决方案. 是否有任何特定条件必须满足才能使用一种(或另一种)方法获得最佳解决方案? 解决方案 基于维基百科的文章. 贪心方法 贪心算法是一种遵循问题解决启发式的算法每个阶段的局部最优选择,希望找到一个全局最优.在在许多问题中,贪婪策略通常不 ..
发布时间:2021-12-24 14:30:55 其他开发

最小化加权和

我最近遇到了这个问题.假设在 x 轴上有 n 个点,x[0],x[1] .. x[n-1].让与这些点中的每一个相关联的权重为 w[0],w[1] .. w[n-1].从 0 到 n-1 之间的任何点开始,目标是覆盖所有点,使得 w[i]*d[i] 的总和最小化,其中 d[i] 是到达第 i 个点的距离起点. 示例: 假设点数是:1 5 10 20 40 假设权重为:1 2 10 50 ..
发布时间:2021-12-22 08:31:56 其他开发

为什么 Dijkstra 的算法不适用于负权重边?

有人能告诉我为什么 Dijkstra 的单源最短路径算法假设边必须是非负的. 我说的只是边缘而不是负权重循环. 解决方案 回忆一下在 Dijkstra 的算法中,一旦一个顶点被标记为“封闭的"(并且在开集之外)——算法找到了最短路径,并且永远不必再次开发此节点 - 它假定开发到此路径的路径最短. 但是对于负权重 - 这可能不是真的.例如: A/\/\/\5 2/\B--(- ..
发布时间:2021-12-06 19:46:02 其他开发

如何使用一组重叠最小的范围覆盖一个范围?

假设有 n 个任务和一组 m 个人,每个人可以完成一系列任务(Ti 到 Tj).完成每项任务的成本是 k* no.完成该任务的人.如果可能,至少完成一次所有任务的最低成本是多少.我觉得这是一个动态规划问题,但我无法达到最佳方程.有人能帮我找到正确的方程式或上面的代码块吗?为了更好地理解,我附上了几个例子. n:4米:3m 人的任务范围:{(3,4);(1,2);(2,3)}答案:m1 &m2 可 ..
发布时间:2021-10-26 18:51:17 其他开发

一个火车站所需的最少站台数量

问题如下:“给定到达火车站的所有火车的到达和离开时间,任务是找到火车站所需的最少站台数量,以便没有火车等待.火车可以在午夜之前到达,午夜之后到达" 我了解传统问题如何在没有火车可以在午夜之前到达并在午夜之后离开的条件下工作,因为我见过的许多解决方案都没有考虑午夜条件. 我的方法是只使用传统的“蛮力"然而,我考虑了午夜前到达并在午夜后离开的特殊情况,称为“交叉".我已经编写了以下代码(在 ..
发布时间:2021-10-26 18:47:04 Python

用于子集总和等于或接近给定比率的随机分区的快速 Python 算法

这个问题是我之前问题的延伸:快速 python 算法,用于从子集总和等于比率的数字列表中查找所有可能的分区.我想划分一个数字列表,以便子集总和的比率等于给定值.不同之处在于我现在有一长串 200 个数字,因此枚举是不可行的.请注意,虽然列表中当然有相同的数字,但每个数字都是可区分的. 随机导入lst = [random.randrange(10) for _ in range(200)] 在这 ..
发布时间:2021-09-01 18:33:42 Python

sed 中的贪婪

我想要 ereg ($rat, $dog, $cat) 成为 preg_match ('#'.$rat.'#', $dog, $cat) 为了实现这一点,我做到了 echo 'ereg ($rat, $dog, $cat)' |sed "s/ereg\(.*\)(\(.*\),/preg_match\1('#'.\2.'#',/g" 但是,这个正则表达式改变了 ereg ($rat, ..
发布时间:2021-07-06 20:27:05 其他开发

php正则表达式:后视和前瞻和贪婪问题

这应该很简单,但我是个菜鸟,我一生都无法弄清楚.我正在尝试使用正则表达式来匹配特殊打开/关闭标签内的文本:[p2][/p2] 所以在本文中: 苹果[p2]香蕉[/p2]葡萄[p2]柠檬[/p2] 它应该匹配“banana"和“lemon".到目前为止我处理的正则表达式是: (? 但这太贪心了.它匹配以香蕉中的“b"开头并以柠檬中的“n"结尾,匹配banana[/p2] 葡萄 [p2] ..
发布时间:2021-07-06 20:16:47 PHP

Greedy Alogorithm提出的汽车加油问题(使列表索引超出范围)

我有一个使用贪婪算法解决汽车加油问题的小问题. 问题简介 您将前往距您所在城市𝑑英里的另一座城市.你的车可以行驶装满油箱最多可以行驶1/3英里,然后您便可以装满油箱.一路上,加油站的距离为stop1 stop2...,从您的家乡停止.最少需要补充笔芯的数量是多少? 输入: 9504004200375550750 输出: 2 到目前为止,我已经尝试过 def ..
发布时间:2021-05-30 19:02:42 其他开发

我可以在lex代码中指定模式匹配优先级吗?

我在网站上有一个相关主题( $ cat b.l%{#include%}%%"12"表示{printf("head \ n");}"34"表示{printf("tail \ n");}.* {printf("content \ n");}%% 我想说的是,当遇到"12"时,打印"head";当遇到"34"时,打印“尾巴",否则打印“内容".对于不包含"12"的最长匹配或" ..
发布时间:2021-05-29 20:30:37 其他开发

从N个项目中选择M个项目,以便完成这些M个项目所需的时间最少

我正在尝试解决以下问题:您将获得N个物品.每个项目包含三个任务A,B和C.完成任务A所需的时间为TA,任务B为TB,任务C为TC.现在,我们必须选择M项,以便完成这些M项的任务所需的时间最少.这是规则: 同时选中所有M个项目,即同时操作所有M个项目 除非所有M个项目的任务A完成,否则任何选定项目的任务B都无法启动 除非所有M个项目的任务B完成,否则任何选定项目的任务C都无法启动 例 ..
发布时间:2021-05-18 20:10:42 Java开发

找出与使用每个数字相关的成本的最大值

我已经得到了我所拥有的全部钱。现在我知道写下每个数字(1到9)所花费的成本。那么如何从中创建最大数量呢?有没有针对此问题的动态编程方法? 示例: 可用总资金= 2 每个数字的成本(1到9)= 9、11、1、12、5、8、9、10、6 输出:33 解决方案 这是在 ..

原始计算器的动态编程

我正在处理该问题,这与找零硬币问题非常相似。 我需要实现一个简单的计算器,该计算器可以执行以下三个操作使用当前数字x:将x乘以2,将x乘以3,或将1加到x。 目标给出一个正整数n,找到从数字1开始获得数字n所需的最小操作数。 我对此采取了一种贪婪的方法,但结果显示不正确 import sys def best_sequence(n): 序列= [] ,而n> = ..
发布时间:2020-10-27 02:24:56 Python

从N个项目中选择M个项目,以使完成这些M个项目的任务花费的时间最少

我正在尝试解决以下问题: 您得到了N个项目。每个项目包含三个任务A,B和C。完成任务A所需的时间为TA,任务B为TB,任务C为TC。现在,我们必须选择M项,以便以最少的时间完成这些M项的任务。规则如下: 所有选中的M个项目同时操作,即所有M个项目的任务同时操作 除非所有M个项目的任务A完成,否则无法启动任何选定项目的任务B 除非已完成任务B的任务B,否则无法启动任何选定项目的任务C所有 ..
发布时间:2020-10-17 23:41:33 Java开发

贪婪硬币计数中的整数溢出

#include #include #include int main(void){ printf(“输入金额:”); 浮动金额= GetFloat(); 个硬币= 0; 而(金额!= 0){ 如果(fmod(金额,0.25)== 0){ 金额=金额-0.25; 个硬币+ = 1; } 否则,如 ..
发布时间:2020-10-11 22:58:20 其他开发

如何使预处理器宏贪婪?

我们有以下预处理程序宏。它用于帮助Doxygen文档,因为Doxygen在C ++和某些模板typedef方面存在问题: #如果已定义(DOXYGEN_PROCESSING) #定义DOCUMENTED_TYPEDEF(x,y)类y:公共x {}; #else #定义DOCUMENTED_TYPEDEF(x,y)typedef x y; #endif 当 X 是非 ..
发布时间:2020-10-10 23:08:36 C/C++开发