• 贪心


    一:贪心算法

      每一次决策时采用当前意义下的最优策略(个人的理解,dalao勿喷)

    二:贪心算法特点

      1.贪心选择

      2.最优子结构

    三:贪心算法实例

      1.最优装载问题

         (1)例题

           题意:给出n个物体,第i个物体的重量为wi。选择尽量多的物体,使得总重量不超过C。
           输入:n和C以及n个整数表示的wi。
           输出:按照输入物体的顺序输出n个用空格分隔的Y或N。Y表示该物体被选中,N表示不被选中。 最后一行输出所选中的物体的个数num和总重量w,用空格分隔。       注意:这个地方每个物体是不可再分割的整体。

         (2)思路

            从最重的开始装,直至装不下为止

      2.部分背包问题

            思路:

            性价比排序处理

      3.乘船问题

           思路:

            大的带小的

    四:贪心算法应用

      1.不相交区间选择问题

         (1)例题

           LibreOJ种数

         (2)思路

           按照右区间从小到大排序,依次考虑各个活动,如果没有和已经选择的活动冲突,就选,否则就不选择

         (3)伪代码

           LibreOJ-SeanOcean

      2.区间选点问题

         (1)例题

             LibreOJ种数

         (2)思路

           按照右区间从小到大排序,从种植区间从右往左扫描是否达到最少的种植数量,如果没有,从区间向右扫描将没有种植的种上树,达到要求

         (3)伪代码

           LibreOJ-SeanOcean

      3.区间覆盖问题

         (1)例题

             LibreOJ种数

         (2)思路

           按照右区间从小到大排序,从种植区间从右往左扫描是否达到最少的种植数量,如果没有,从区间向右扫描将没有种植的种上树,达到要求。

         (3)伪代码

           LibreOJ-SeanOcean(不知为何有一个点本地过了,OJ上runtime error)

      4.流水作业问题 

         (1)例题

             LibreOJ加工生产调度

         (2)思路

           Johnson算法,将a<b的顺序储存在N1集合,将a>=b逆序储存在N2集合,详细证明(此处~~~)

         (3)伪代码

           LibreOJ-SeanOcean

      5.单位时间任务调度问题

          类似于区间选点问题,只是带了权值而已,千言万语~~~

      6.数列极差问题

         (1)例题

             LibreOJ数列极差

         (2)思路

           把一份数据放入大根堆,每次取两个出来,再将他们两个乘积+1在插入大根堆中,得出的就是最小的,再拷贝一份数据放入小根堆,每次取两个出来,再将他们两个乘积+1在插入小根堆中,得出的就是最大的,输出差即可,

           堆的定义:友情推荐

            priority_queue<int> que1;逆序,大根堆
            priority_queue<int,vector<int>,greater<int> > que2;顺序,小根堆

         (3)伪代码

           LibreOJ-SeanOcean

    五:贪心算法上机练习

     未完待续~~~

     

  • 相关阅读:
    线性同余方程模板( A+C*x=B(mod D) )
    线性同余方程组模板( x=r0(mod m0) )
    poj2891(线性同余方程组)
    BestCoder Round #63 (div.2)
    16.实现多个具有相同方法的接口和父类与实现接口有相同方法
    14.Java中的StringTokenizer类的使用方法
    13.Java为什么不支持多继承
    bootstrap使用基础
    Js 百分比进度条
    Js更改样式导致hover效果消失
  • 原文地址:https://www.cnblogs.com/SeanOcean/p/10931935.html
Copyright © 2020-2023  润新知