Work Scheduling(带反悔的贪心)】的更多相关文章

https://www.luogu.org/problem/P2949 题目描述 Farmer John has so very many jobs to do! In order to run the farm efficiently, he must make money on the jobs he does, each one of which takes just one time unit. His work day starts at time 0 and has 1,000,00…
题面:https://www.acwing.com/problem/content/description/147/ 超市里有N件商品,每个商品都有利润pi和过期时间di,每天只能卖一件商品,过期商品(即当天di<=0)不能再卖. 求合理安排每天卖的商品的情况下,可以得到的最大收益是多少. 第一眼看过去,呀,我应该先选利润大的. 但是因为选了利润大的,错失了一些利润还行的,而且就算 选了利润还行的也可以继续选利润大的怎么办? 这样看起来,保质期,利润,保质期+利润,这些指标排序都是不可行的. 那…
Description Farmer  John  needs  new  cows! There  are  N  cows  for  sale (1 <= N <= 50,000), and  FJ  has  to  spend  no  more  than  his  budget  of  M  units  of  money (1 <= M <=$10^{14}$). Cow  i  costs $ P_i$  money (1 <=$ P_i$ <=…
题目直接链接 分析一下: 这题题意还是比较明白的(少见的一道中文题),他的意思就是:有这么一个无向图:保证联通且点与点直接有唯一的简单路径(说白了就是棵树,根节点是1),每个节点有一个权值(有正有负)和最多经过的次数(>=2),求从根到根的走法中能拿到的最大权值(每个权值只能拿一次,根没有权值,且不限次数). 题意还是这么长...不过其实每一句话都是比较通俗的,大家应该都能理解题意. 既然是一棵树,那就先想一想有关树的东西(不过思维不要僵化,也不一定就用有关树的知识),显然最小生成树,倍增lca…
biubiu~~~ 这道题,考场上上来就dp然后发现怎么优化也不行.............最后发现是贪心............. 正解:带反悔的贪心,原理是,假设我们现在得到了取i个的最优解那么我们取i+1个的时候要么是新取一个要么把原来取过的点取反(间隙与所选).我们把所有点从大到小选,这个过程用堆维护,一开始所有的点都是可选的,那么我们取了一个点他前一个后一个都不能再选,那么我们把它们都从堆里取出来,记录答案,同时放进去一个新点,是由这三个点融合的,值为val[i-1]+val[i+1]…
dp容易想到,但没法进一步优化了. 考虑贪心,每次选出价值最大的物品.但这显然是不对的因为会影响其他物品的选择. 于是考虑加上反悔操作.每次选出一个物品后,将其相邻两物品删除,再将原物品价值变为相邻两物品价值和-原物品价值.这样如果再次选择该物品就可以达到改为选择相邻两物品的效果.并且最优方案中相邻两物品一定要么都选要么都不选,否则不如选择原物品. 这种带反悔的贪心策略似乎类似地在网络流算法中出现,应该是一个比较普遍的做法,然而并不会证. #include<iostream> #include…
[USACO09OPEN] 工作调度Work Scheduling 题意翻译 约翰有太多的工作要做.为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间. 他的工作日从0时刻开始,有10^9个单位时间.在任一时刻,他都可以选择编号1~N的N(1 <= N <= 10^6)项工作中的任意一项工作来完成. 因为他在每个单位时间里只能做一个工作,而每项工作又有一个截止日期,所以他很难有时间完成所有N个工作,虽然还是有可能. 对于第i个工作,有一个截止时间D_i(1 <= D_i &…
题目传送门(内部题62) 输入格式 第一行有一个整数$n$.第二行有$N$个整数:$a_1\ a_2\ a_3\cdot\cdot\cdot a_n$. 输出格式 一行一个整数表示最大收益. 样例 样例输入: 51 1 5 3 6 样例输出: 9 数据范围与提示 样例解释: 第$1,2$天分别买入一件货物,第$3,5$天分别卖出一件货物,第$4$天不进行交易. $-1-1+5+6=9$. 数据范围: 对于所有数据,$n\leqslant 10^5$,$0\leqslant a_i\leqslan…
P2949 [USACO09OPEN]工作调度Work Scheduling 题目标签是单调队列+dp,萌新太弱不会 明显的一道贪心题,考虑排序先做截止时间早的,但我们发现后面可能会出现价值更高却没有时间做的情况 我们需要反悔的操作 于是我们想到用堆,如果当前放不下且当前价值高于已做工作中的最小价值,则删去它加入当前值 类似用堆实现反悔的贪心的经典题目:P1484 种树 #include<queue> #include<cstdio> #include<algorithm&g…
BZOJ_2151_种树_贪心+堆 Description A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树.园林部门得到指令后,初步规划出n个种树的位置,顺时针编号1到n.并且每个位置都有一个美观度Ai,如果在这里种树就可以得到这Ai的美观度.但由于A城市土壤肥力欠佳,两棵树决不能种在相邻的位置(i号位置和i+1号位置叫相邻位置.值得注意的是1号和n号也算相邻位置!).最终市政府给园林部门提供了m棵树苗并要求全部种上,请你帮忙设计种树方案使得美观度总和最大.…
BZOJ_1029_ [JSOI2007]建筑抢修_贪心+堆 Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏.现在的情况是:T部落基地里只有一个修理工人,虽然他能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间.同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑.如果某个建筑在一段时间之内…
堆/贪心 一共N-1个元素……用堆维护最大值,取了第x个元素以后,插入v[x-1]+v[x+1]-v[x]这个元素,如果再取这个新元素就表示不取x,而取x-1和x+1……大概就是这种“带反悔”的思路吧…… 已经不会写堆了TAT,膜拜了lyd神犇 /************************************************************** Problem: 1150 User: Tunix Language: C++ Result: Accepted Time:4…
你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏的乐趣.已知办公楼都位于同一条街上.你决定给这些办公楼配对(两个一组).每一对办公楼可以通过在这两个建筑物之间铺设网络电缆使得它们可以互相备份.然而,网络电缆的费用很高.当地电信公司仅能为你提供 K 条网络电缆,这意味着你仅能为 K 对办公楼(或总计 2K 个办公楼)安排备份.任一个办公楼都属于唯一的配对组(…
题面 这是一道标准的带反悔贪心: 利用大根堆来维护最大值: 当选择了num[i]后,反悔了,反之选择选了num[i-1]和num[i+1]时获利便增加了num[i-1]+num[i+1]-num[i]. 所以当num[i]被选时,我们就可以删去num[i-1]和num[i+1],并把num[i]改成num[i-1]+num[i+1]-num[i],放进堆中 #include <bits/stdc++.h> #define int long long using namespace std; ]…
Solved:3 Rank:214 08 Coin 题意:n组硬币 每组有两个 分别有自己的价值 每组的第一个被拿了之后才能拿第二个 问拿1,2....2n个硬币的最大价值 题解:之前贪心带反悔的做法写不出来... 然后学习下别人的贪心策略 考虑从0或1开始 每次拿两个 那么要么是拿一组 要么是拿两个散装最大的 然后模拟一下 #include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 5; int a[MAXN],…
Day 1 T1 一看样例:答案不就是 \(\dfrac{\max_{i=1}^n a_i +1}{2}\) 吗? 于是自信打上,拍都不拍.然后就,,对了? 插曲:自己出了一个极端数据,发现 scanf 跑了 \(1.05s\) ,急忙打了一个快读 T2 开始打了一个暴力,就连样例都 T 飞 后来想好像一直向前是最优的,于是打了一个这 然而我没有全排列,炸了. 正解: #include<bits/stdc++.h> using namespace std; const int N=43200;…
系统环境: rhel6 x86_64 iptables and selinux disabled 相关网址:http://zh.linuxvirtualserver.org/ yum仓库配置: [rhel-source] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=ftp://192.168.122.1/pub/yum enabled=1 gpgcheck=1 gpgkey=file:///etc/…
题目链接: [UOJ455]雪灾与外卖 题目描述:有$n$个送餐员(坐标为$x_{i}$)及$m$个餐厅(坐标为$y_{i}$,权值为$w_{i}$),每个送餐员需要前往一个餐厅,每个餐厅只能容纳$c_{i}$个送餐员,一个送餐员去一个餐厅的代价为$|x_{i}-y_{j}|+w_{j}$,求最小代价. 首先这个题可以暴力建图跑费用流,具体做法就不说了.现在我们考虑模拟费用流的过程,也就是模拟贪心及匹配中反悔的过程. 我们对送餐员和餐厅分别开一个小根堆然后从左往右决策每个坐标位置的人或餐厅的选择…
LVS简介   LVS--Linux Vritual Server 即linux虚拟服务器,1998年5月由章文嵩博士开发并开源,目前全球多个国家的企业单位都在使用LVS构建集群服务.   LVS可实现一个高性能.高可用的服务器,它具有很好的可伸缩性(Scalability).可靠性(Reliability)和可管理性(Manageability).   可以利用LVS框架实现高可伸缩的.高可用的Web.Cache.Mail和Media等网络服务. LVS 3种工作模式 LVS-NAT用户向DS…
思路:写的时候感觉是贪心但是没有什么思路... 看了题解,原来有一个选了能反悔的贪心思路, 如果最优那么每个城市只能和旁边的相邻 城市连边,所以问题变成了由n个数,不能取相邻的两个数,取k个最小是多少. 我们将这n个数放进优先队列里边贪心地取小的,取完最小 的之后,把当前这个now和当前这个的左边l[now]和右边r[now]的删掉,再加入一个 a[l[now]] + a[r[now]] - a[now], 下次选到这个就表明反悔啦 即选了两边那个,中间那个不选, 需要注意的是拿掉的是最左或者最…
[题意]给定n项工作的截止时间和价值,每项工作需要1单位时间完成,求最大价值.n<=10^5. [算法]贪心+堆 [题解] 如果是访问到x时将d[x]前的点从价值最大的能加就加是错误的贪心,因为后面的点会占用到前面的,不能保证已选的就是最优的. 正确的贪心:按顺序选择前面所有点,并把价值取负后加入堆表示“反悔值”,然后遇到超限就弹出反悔值最小的(价值也就最小). 还有一种思路是反过来做:从后往前算“开始时间”,每秒选择一个算入答案. ”反悔“是贪心思想的重要用法之一! #include<cst…
为了响应班级组团学习的要求,班主任xx将班上的$n$个同学编成了$m$个学习小组. 班长小r作为资深OI选手,他发现班级里存在一个可以量化的学习激♂情,并且这个激情跟组内成♀对的同学数量相关.若有$x$个人同在一个小组内一起学习,那么会增加$\left\lfloor\dfrac x2\right\rfloor$的学习激情. 因为xx所安排的一个同学可能属于多个学习小组,而每人一次又只能在一个小组中学习,小r意识到这里存在一个最大的学习激情.请你帮助小r,将同学们安排到特定的学习小组中一起学♂习,…
题意 给\(2n\)个物品,分别有\(a,b\)属性,对于\(i=1...n\),选择\(i\)个\(a\)属性和\(i\)个\(b\)属性,且每个物品只能作为一种属性的贡献,求最小的值. 分析 看了题解补了两天... 应该叫做可反悔的贪心,或者其实就是网络流?不过因为是特殊的图,所以可以用优先队列来优化. 维护四个优先队列,分别是未使用的\(a\)属性,未使用的\(b\)属性,已使用的\(a\)属性转化为\(b\)属性的花费,已使用的\(b\)属性转化为\(a\)属性的花费. 对一般情况,每次…
暴力没打满...有点垃圾... 考得稍绝望,啥也不会啊??? T3的测试点分治还写挂了... 其实就是没有沉下心好好的思考,在三道题上来回切换结果一个成型思路都没有 T2既然已经想到那一步了居然没有继续想下去... 不管怎么说,还是思路凌乱了,没有稳下来 但是,也算是混进第一鸡房了,也是新的自我调整的机会吧 没怎么颓废,改题也快了...感觉不错 这是一个好的桌面背景.(Ubuntu Mono Bold Italic 150号字) T1:trade 刚开始以为要怎么优化dp.但是这其实是一个比较明…
USACO12FEB 久违的奶牛题. 题意: FJ准备买一些新奶牛,市场上有 $ N $ 头奶牛 $ (1 \leq N \leq 50000) $ ,第i头奶牛价格为 $ P_i (1 \leq P_i \leq 10^9) $ .FJ有K张优惠券,使用优惠券购买第i头奶牛时价格会降为 $ C_i(1\leq C_i \leq P_i) $ ,每头奶牛只能使用一次优惠券.FJ想知道花不超过 $ M(1 \leq M \leq 10^{14}) $ 的钱最多可以买多少奶牛? 解法: 在ZR时摸鱼…
一.什么是lvs1.lvs的定义LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.是由章文嵩博士开发的一款开源软件,1998年5月发布,是中国国内最早出现的自由软件项目之一. LVS工作在一台server上提供Directory(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的realserver(真正提供服务的主机),从而实现集群环境中的负载均衡.LVS的核心组件ipvs工作在kernel中,是真正的用于实现根据定义…
传送门:QAQQAQ 题意:$n$个点中选$m$个不相邻的点,使得这些点不相邻(1和n算相邻),求这些点的最大值 思路:这不是神仙题不是神仙题…… 刚看到这题觉得不难,好像只要贪心就可以了但贪心不知从何下手——因为取了一个点就会影响其它两个点 所以我们要用“可以反悔”的贪心,即取完一个点以后,我们要加入一个点,让此操作可以反悔——不取这个点,而取它两边的点,即$val[new]=val[l]+val[r]-val[pos]$,然后取了当前点把它左右点删去即可(因为再取一次当前点就是取它左右点的情…
关于flag,都立下了 T1 考试的时候就觉得是贪心,但是不会反悔emm…… 于是正解就是一个堆优化可反悔的贪心=.= 每次找前面最小的,于是是小根堆. 我们在交易的时候发现后面的一个可以更优. 于是可以发现$x_i-x_j+x_j-x_k=x_i-x_k$ 这样就可以反悔,如果发现$k$可以更优,就把$j$退回去, 所以每次决策完,直接压堆或是更新,并把两个数一起放进去. 一个用来退货,另一个用来再买. #include <iostream> #include <cstring>…
LuoguP3045 [USACO12FEB]牛券Cow Coupons 果然我贪心能力还是太差了 ZR讲过的原题我回来对做法没有一丁点印象 有时候有这样一种题目 每个数有两种不同的价值 你可以选择价值低的,也可能花费一些神秘能力去获得价值高的 这时候我们直接贪心就可能会出现这种情况 当前最后解不是全局最优解 一般这种时候有两节决策, 要么DP 要么尝试进行可反悔的贪心 我们先按照所有牛的优惠后的价格排序,开一个小根堆 将前\(k\)个用优惠劵去买,很明显这可能是错误的 我们就将优惠券买的每一头…
Description You play a strategic video game (yeah, we ran out of good problem legends). In this game you control a large army, and your goal is to conquer nnn castles of your opponent. Let's describe the game process in detail. Initially you control…