zoukankan      html  css  js  c++  java
  • 贪心

    第三讲:贪心
     • Sort
     • 堆:Priority_queue
     Heap.push(x);
     • 贪心:每次决策时选取当前意义下最优的策略,值选取当前最优
      错误例子:单源最短路
      不是所有问题都有效,要求整体最优性可以由局部最优性推导
      证明方法:反证法 数学归纳法 领项交换(证明交换两项不会更糟)范围缩放 举反例
     • Eg1:有n项工作,开始时间t1,结束时间t2,对于每项工作,你都可以选择参加与否,中途不能退出。参加工作时间不能重叠(开始和结束相同也不行)问最多可以参与多少项工作
     1<=n<=1e5 1<t1<t2<1e9
     题解:在可选时间中选择结束时间最早的 以结束时间排序
     • Eg2:合并果子(luogo1090)
     有n堆果子,每堆有ai个,现在要将这些果子合并成一堆,每次合并的代价是两堆果子的总数,求合并果子的最小代价。1<=n<=1e5,1<=ai<=2e4
     题解:直接排序选最小的
     • Eg3:给n段木头的长度L,求将一块长木头(长度为着n个木头长度之和)分n段木头所花的最小费用,每次切断木头时花费的代价是原木头的长度1<=n<=2e4,0<=l<=5e4
     题解:先截断最大的
     • Eg4:在一条直线上有n个点,坐标分别为xi,从中选取若干个加上标记,对于每一个点,其距离是r以内的区域里必须有一个被标记的点。问至少要有多少点被加上标记1<=n<=1e3
     0<=xi,r<=1e3
     题解:分为子问题,去看第二个的圆里有没有第一个,如果有就往下走,知道第a个没有第一个,标记第a-1个,然后往右最不能包含的再次重复这个过程
     • Eg5:n列方块,每列有hi个方块,你有一个袋子初始有m个方块,容量无限,你初始在第一列,你可以从当前列拿或放方块,如果abs(hi-hi+1)<=k你可以到下一列,问你能否到第n列
     题解:在满足条件的情况下让每列都尽量的少
     • Eg6:国王游戏
     给n个二元组(ai,bi)和两个数a0,b0,现在你需要的将n个二元组排序(既不包括a0,b0),使得$max_{i=1}^n {frac{Pi_{j=0}^{i-1}}{b_i}}$ 1<=n<=1e3 0<=a,b<=1e5
     题解:考虑第i个和i+1个分数的值,交换两项会使结果变差,化简式子
     • Eg7:刘禅的课程
     题解:
     • Eg8:有n个物品,每个物品大小为ai,将物品放入大小为m的箱子里,每个箱子最多放两个,问至少需要几个箱子。
     题解:排序
     • Eg9:给一个字符串表示的非负整数num,移除k个数,使得到的数字最少。Num<1e4+2不会包含任何前导零
     题解:比较左边和右边的大小,小于就留下
     • Eg10:有n个人要去执行任务,所有人都要你来交代任务,第i个人完成任务交代任务需要的时间为bi,了解完任务之后会不间断的执行任务ji分钟任务,完成所以任务的最短时间,两个人不能同时交代任务,但可以同时执行任务。
     题解:bi的和加上ji,考虑交换两个人的顺序,对前后的人没有影响,优先交代执行时间长的,比较4个值,先i后jmax(bi+ji,bi+bj+jj)先j后imax(bj+jj,bj+bi+ji)

  • 相关阅读:
    jackson 枚举 enum json 解析类型 返回数字 或者自定义文字 How To Serialize Enums as JSON Objects with Jackson
    Antd Pro V5 中ProTable 自定义查询参数和返回值
    ES6/Antd 代码阅读记录
    es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?
    Antd Hooks
    使用.Net Core开发WPF App系列教程(其它 、保存控件内容为图片)
    使用.Net Core开发WPF App系列教程( 三、与.Net Framework的区别)
    使用.Net Core开发WPF App系列教程( 四、WPF中的XAML)
    使用.Net Core开发WPF App系列教程( 二、在Visual Studio 2019中创建.Net Core WPF工程)
    使用.Net Core开发WPF App系列教程( 一、.Net Core和WPF介绍)
  • 原文地址:https://www.cnblogs.com/lllllllm/p/12186339.html
Copyright © 2011-2022 走看看