一类区间选择问题的贪心策略

有一类问题在区间上的选择问题有如下特征:
  1. 1. 每个选择之间不交叉
  2. 2. 区间元素可以在某个选择中,也可以不在任何选择中
  3. 3. 最大化选择的个数
对于这类问题,我们可以考虑采取贪心策略。具体来说,对于区间从左到右考虑,每次发现一个可行的组合就选择,保证右区间尽可能小。
Codechef CHEFPRAD
[给a,b数组,数组内部元素相对位置不变,但ab之间的元素可以同时位移一个距离。每个元素可以匹配和它距离小于y的对面的点,求最大匹配]
[观察到最优匹配方案一定是落在b数组某个元素的上边界上(如果没有,则稍加调整就可以得到)。于是我们可以花O(n^2)的代价枚举位移。对于枚举的那个匹配上下可以分别贪心]
[如果用dp就会tle]
codeforces 467E
[给一个序列,让你挑出最多的数,使得每四个挑出的数呈现ABAB的形式]
[显然我们从左到右遇到一个ABAB就贪心地选择它。如何判断出现?对于AXXXXXXA,我们可以把中间的X用A标记。当某个被标记地元素再次出现时,我们就得到了一组解]
[如果不贪心,用DP的思路考虑就会非常na?ve。每次最多往之前相同的数字跳3次,每次需要用可持久化线段树计算有没有pre落在区间的左边。]

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Times New Roman"; color: #454545; min-height: 15.0px }
li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 }
span.s1 { }
span.s2 { font: 12.0px Helvetica }
span.Apple-tab-span { white-space: pre }
ol.ol1 { list-style-type: decimal }

时间: 2024-11-10 22:43:47

一类区间选择问题的贪心策略的相关文章

贪心策略---分配饼干

??保证每次操作都是局部最优的,并且最后得到的结果是全局最优 分配饼干 455. Assign Cookies (Easy) Input: [1,2], [1,2,3] Output: 2 Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2. You have 3 cookies and their sizes are big enough to gratify all

活动选择问题(贪心算法vs动态规划)

活动选择问题贪心算法vs动态规划 基础知识 1-1动态规划 1-2贪心算法 1-3贪心算法vs动态规划 活动选择问题描述 活动选择问题最优子结构 活动选择问题算法设计 4-1贪心算法之选择最早结束活动 4-1-1递归贪心算法 4-1-2迭代的方式进行 4-2贪心算法之选择最短时长活动 4-3动态规划方法实现 4-3-1自上而下的实现 4-3-2自下而上的实现 结论 活动选择问题(贪心算法vs动态规划) 1.基础知识 在讲解活动选择问题之前,我们首先来介绍一动态规划和贪心算法的基础知识 1-1.动

贪心策略 题解(合集)

背包问题[DP] 有一个背包,背包容量是M=150kg.有7个物品,物品不可以分割成任意大小.要求尽可能让装入背包中的物品总价值最大,但不能超过总容量. 01背包 f[j]=max(f[j],f[j-w[i]]+c[i]); 搬书[DP] 陈老师桌上的书有三堆,每一堆都有厚厚的一叠,你想逗一下陈老师,于是你设计一个最累的方式给他,让他把书拿下来给同学们.若告诉你这三堆分别有i,j,k本书,以及每堆从下到上书的质量,每次取书只能从任一堆的最上面取,显然,每次取书陈老师的体力消耗都会加大,这里用体力

到底什么叫贪心策略(内含几个经典贪心样例和三大图论算法)

昨天和前天写完了分治和dp,感觉收获真的挺大的,复习绝不是简单的重复记忆,而是将所学知识融会 贯通的过程,分析各种思想的异同,这些都是在平时学习和刷题的时候没有认真考虑的问题 好了,扯远了 今天分析一下到底什么叫贪心策略 怎么理解贪心:贪心在解决问题上是目光短浅的,仅仅根据当前的已知信息就做出选择,并且一旦做了选择,就不再更改 比如01背包问题,用贪心的话是不可解决的,因为贪心每次只顾眼前最优,即每次选择价值最大的,而忽 略了另外一个变量,物品的重量,如果还考虑物品的重量的话,那就是dp了 贪心

The - Modcrab——使用贪心策略

一.题目信息 The - Modcrab 简单翻译一下:Vova有生命值h1,每次攻击值为a1,每瓶药水恢复生命值c1;Modcrab有生命值h2,每次攻击值为a2.在每个关卡开始,Vova有两种选择,要么攻击怪兽Modcrab,要么喝一瓶药水(Modcrab的生命值允许超过h2),然后,如果战斗没有结束,Modcrab会攻击Vova.战斗结束的标志是Vova(或Modcrab)的生命值降至0,或者更低. 注:1.选择喝药水,Modcrab也会攻击Vova.2.攻击是有先后顺序的 二.算法描述

背包问题(贪心策略)

原创 给定n种物品和一个背包.物品i的重量是Wi,其价值为Vi,背包的容量为C.应如何选择装入背包的物品, 使得装入背包中物品的总价值最大?物品时可以拆分的,比如可以将物品的三分之一放入背包. 使用优先放入[价值/重量]最大的物品的贪心策略解题. 1 import java.util.Scanner; 2 class sack{ //背包类 3 private double c; //背包容量 4 private double n; //物品个数 5 private double w[]; //

最大不相交区间数+最少区间数覆盖问题 贪心思想

最大不相交区间数的一道题是hdu2037 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037 题目给出n个区间,问最多有多少个区间没有重叠,只需要对区间右端点进行排序就行,因为一个节目结束得早的话就会为其他节目留下更多的时间,如果选择对节目的开始时间进行排序的话就会导致有一个节目迟迟不结束使得其他节目又没法开始的现象.右端点最小的第一个区间时一定要选的.这个可以简单地将其他右端值更大的区间跟他交换,就会发现不会产生更多的区间数,只会小于等于我们

【贪心策略】USACO 越野跑

问题 H: 越野跑[贪心策略] [题面] 为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练.贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:奶牛独自进山的时间不得超过M秒(1< =M< =10,000,000). 整条山路被贝茜划分成T个长度相同的小段(1< = T< = 100,000),并且,贝茜用S_i表示第i个小段的路况.S_i为u,f,d这3个字母之一,它们分别表示 第i个小段是上坡.平地,或是下坡. 贝茜要花U秒(1< =U&l

LeetCode--Best Time to Buy and Sell Stock (贪心策略 or 动态规划)

Best Time to Buy and Sell Stock Total Accepted: 14044 Total Submissions: 45572My Submissions Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (ie, b