ACM总结四

贪心算法在解决问题的策略上目光短浅,只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。换言之,贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。贪心算法对于大部分的优化问题都能产生最优解,但不能总获得整体最优解,通常可以获得近似最优解。
该算法存在问题:
1). 不能保证求得的最后解是最佳的;
2). 不能用来求最大或最小解问题;
3). 只能求满足某些约束条件的可行解的范围。
基本思想
子问题:同动态规划一样,也是问题能拆成子问题。
贪心:即只关注当前这一步,从所有选项里选取使当前最优的那个,不关注整体。
自顶向下:该算法是根据当前贪心做出的选择,迭代的来简化,得到规模小的问题。
算法步骤
找出最优解的性质,刻画结构;
递归定义最优值;
自顶向下的思路设计算法;——>找当下最优值然后分裂子问题
根据过程的信息构造最优解;
贪心算法并不能总求得问题的整体最优解。但对于某些问题,却总能求得整体最优解,这要看问题时什么了。只要能满足贪心算法的两个性质:贪心选择性质和最优子结构性质,贪心算法就可以出色地求出问题的整体最优解。即使某些问题,贪心算法不能求得整体的最优解,贪心算法也能求出大概的整体最优解。如果要求不是太高,贪心算法是一个很好的选择。最优子结构性质是比较容易看出来的,但是贪心选择性质就没那么容易了,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]是一个关于有向图的强连通分量的算法模板,使用了深度优先搜索(DFS)来标记各个点的编号,并通过反向图进行第二遍DFS来找出连通分量。这个模板可以用来解决一些与有向图强连通分量相关的问题。 引用\[2\]是一个关于Dijkstra算法的模板,用于求解单源最短路径问题。它使用了优先队列来优化算法的时间复杂度,通过不断更新节点的最短路径长度来找到最短路径。 关于acm模板的整理和使用方法,可以按照以下步骤进行: 1. 首先,根据需要选择合适的算法模板,比如上述提到的强连通分量算法模板或Dijkstra算法模板。 2. 将选定的算法模板复制到你的代码中,并根据具体问题进行适当的修改和调整。 3. 确保你的代码中包含了所需的头文件和全局变量的定义。 4. 根据具体问题的输入格式,编写相应的输入代码,将输入数据存储到合适的数据结构中。 5. 调用选定的算法函数,传入合适的参数,进行计算。 6. 根据具体问题的输出格式,编写相应的输出代码,将计算结果输出。 7. 编译和运行你的代码,检查是否得到了正确的结果。 总结起来,整理和使用acm模板的方法包括选择合适的算法模板、修改和调整代码、编写输入和输出代码、调用算法函数进行计算、编译和运行代码。根据具体问题的要求,可以灵活地使用不同的算法模板来解决问题。 #### 引用[.reference_title] - *1* *2* [ACM 模板整理](https://blog.csdn.net/Lin_ZR/article/details/78976281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值