【贪心算法】| 局部最优解推出全局最优解 | 单峰算法

1,算法思路

贪心算法的核心思路就是通过局部最优解来解决全局最优解的一种算法思路,对于这种思想我们在使用的时候要保证一个过程就是可以使用局部 – > 全局的结果。

常用的解题思路:猜思路再解题,只演算不证明。

2,常见的应用

对于贪心算法,我们难就难在思路上,但是对于思路我们只通过不断的增加见识来完成这段的补充。

还有一点是代码实现上,我们可以在贪心策略下积累一些代码之间墨守成规的规则,来更快的完成代码的实现。

总的来说贪心策略是一种不怎么好理解的东西,下面的几个例题其实也都是比较简单的贪心问题,可以作为参考来看,但是总的来说贪心策略我们也可以大类的划分一下,虽然关联性没有想到的那么强。


这几道是相关区间的题型,但是似乎他们并不是那么专一,其实最重要的还是他们的排序。
acwing 905 , 906 ,907 ,908
请跳转
运算符的重构

bool operator <( const R &W)const 
{
	return r < W.r ; 
}

下面是哈夫曼树的题型
请点击

#include <iostream>
#include <queue>
using namespace std ;
const int N = 10010 ; 
int main ()
{
    priority_queue<int ,vector<int> , greater <int> > heap ; 
    int n ;
    cin >> n ;
    for(int i = 0 ; i < n ; i ++ )
    {
        int x ;
        cin >> x ;
        heap.push(x);
    }
    long long ans = 0 ;
    while(heap.size() > 1 )
    {
        int t1 = heap.top() ;
        heap.pop() ;
        int t2 = heap.top() ;
        heap.pop() ;
        ans += (t1 + t2) ; 
        heap.push(t1 + t2 ) ; 
    }
    cout << ans << endl ;
    
    return 0 ; 
}

贪心算法可以去codeforces上来练习,效果还是不错的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值