ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

思维回想集 - 贪心

2022-08-01 14:36:08  阅读:134  来源: 互联网

标签:思维 位置 -- max 回想 例子 答案 贪心


注:未进行二次整理,仅为做题后的直接总结.

 

本文档旨在对思考方向的总结与例证收集.

@ 贪心
1* 单位最优.
将需求拆成许多'单位需求',再对于每个'单位需求'寻找'单位货物'.
适用范围: 静态 ; 没有组合优惠 ;
例子: (P1208.要采购a份牛奶,每个农民有bi份且单价为ci.最小化花费.)

3* 极端对比,归纳 & 邻项交换 ~约等于~ 与其它情况进行比较
用你的两个点所构成的匹配,替换答案的对应那两个点的匹配(此时答案有4个点,因此你需要将剩下2点匹配起来,即使那并非最优!),目的是证伪答案的最优性--既然答案通过改为你现在的这个匹配可以更优,那么它就不是答案了.--对比
因此你要选择最夸张的匹配,不然答案还会嘴硬.--极端
而且当定下该匹配最优后,应立即删去不再用的点,试图构造与刚刚相似的模型,类似数学归纳法.--归纳
适用范围: 可以邻项交换而不影响其它匹配的计算,则交换.
例子: (P4995.n个正数,第一个位置固定为0,为剩下的位置寻一个排列使得相邻数的差 的平方 加起来最大.)
(P1094.可证明最小的一定匹配符合要求中的最大物品时,不劣于任何答案.)
(P1080.国王游戏,经典的邻项交换 )
(P5521.(类比到化学)(活化能-焓变)最大的步骤先走.)
(P8113.按照当前分数和a1,a2大小关系分类即可.)
-数学归纳法
例子: (P1090.合并果子中,最小的两堆合并好后问题规模-1.)
(P1937.证明后来的与之前已选择的有冲突时,为使得再后来的能更有可能被满足,要舍弃"后来的".)

2* 关键信息排序=主元法
把题目中的关键信息从小到大(或~)排序后按顺序考虑.
假如没有思路,就凭直觉任选一个主元排序吧.
例子: (P1199.将默契值大到小排,第一个含有此前已出现过的武将的匹配为答案.)
(AT4877.将工资大到小排(相等时随便).放在尽可能晚的时间完成.)
(P7831.处理掉-1后,按照边权从大到小排.)
(P3605.从大到小加点.)

3* 思考答案来源 & 考虑特殊位置
找到对答案有帮助的贡献点,然后贪心的选取最大的,由于不能两全其美,因此答案可以由{A类贡献的贪心最优+B类贡献在满足A时的最优,B类贡献的贪心+A类贡献在满足B情况时的最优}得出.
例子: (P2672.A类=a,B类=s,A类的贪心为选择最大的a,B类的贪心为选择最大的a+2s.)
(P2431.特殊位置为a,b二进制分解后从高往低找的第一个不同的位.)
(AT2044.1号点必须连到自己.)
(P3076.每段的st和ed是特殊的,答案要加上的却是ed->st的长度.)
(CF436E.最右边的选b的位置记为特殊位置.)
(P4785.每个位置可选的数是logN级别,所以可以往此方向思考.)
(CF351E.考虑最大值,如果正,后面的所有(除了相等)数都与其构成逆序对;反之前面的~.也算是在"特殊位置"--较大的值时统计逆序对)
(AT2557.都有max,min了,还不考虑最值?)
(P4823.二分答案检验时要么选好最大的a,在其中产生max(b),要么先选最大的a+b,再选前x-1个a(重复则忽略))
(P2652.枚举每个花色后,还要考虑下i->i+1的快速更新方法.)

3* 数学融入证明
(1)max相关:max(max(A,B)+C,D)+E=max(A+C+E,B+C+E,D+E)
(2)比较相关:若max(A,B)<=max(A,C)是真理,那么可用"逻辑式"得出,必有(B<=A或B<=C).若按照B<=C来排序且能排成功,上面的必为真理,则邻项交换不会更劣.
适用范围: 全部.
例子: (P2123.当邻项交换时通过(1)可以统一形式,通过(2)可以证明相同两人的排序关系.)
(P6927.基本类似.)

4* sort的"严格弱序"要求
f(x,x)=false ; f(x,y)!=f(y,x) ; f(x,y) & f(y,z) => f(x,z)=true.
当式子部分正确时,不妨在相等时特殊处理,若能通过全排列检验,则cmp正确.
例子: (P2123.在相等时特殊处理,验证了其满足严格弱序,则该cmp正确.)
(P6927.化简后的式子发现相等时交换不会有影响,因此可以视为"同一个数")

2* 为后人着想
适用范围: 需满足的要求有重复内容时.
例子: (P1645.按照右端点排好后从右往左填写.)
(AT4173.为岛屿标号后要求即为在L~R中选择>=1个数,使得总共选的数最少.)
(AT4877.将工资大到小,相等时随便排.放在尽可能晚的时间完成.)
(P1937.按照右端点升序,相同则左端点降序,邻项相减可以证明将右端点大的改为小的,对后面的需求不会更劣.)

2* 字典序最小
为每个位置建立下一个0~9出现的位置的索引,若下一个可填0(需满足0后面的数选一部分或全部能满足要求)则必填.
例子: (P1106.没啥好说的.)

3* 影响,路径,树

例子: (P1090.哈夫曼树:两个数被合并了,但是它们仍然单独存在着,做出着贡献,要用树的深度将其描绘.)
(P4785.i->2i,2i+1就想到完全二叉树的背景.)

2* 类比 & 实际意义
例子: (AT4500.把S看成地,W看成方块;操作即为将方块往左推一格.)
(P6155.将这些数看作一个个泡泡在往上浮,泡泡是无法分辨的.)
(P2751.将时间可视化为柱状图然后进行拼接.)
(P2893.花费带来的能力是,使得两个数变相等且能在一个范围内随意变化.)
(P3545.进货看成一个一个进,类比时间,需求看作工程截止时间和所需时间,完成一个收益+1.)
(P4801.类比打地鼠.)
(CF1601D.类比线段覆盖.)

3* 分解
此处仅记录些巧妙的分解方式.
例子: (AT4720.先找出前两行最大的k个,再将它们和第三行得出最终答案.)
(P2751.拆分为A和B,可发现A仅需按照结束时间用堆做即可.)
(P3162.按照两两中点或原位置分段进行贪心.)
(CF436E.强制左边必选a和右边必不选b,得到排序方法.)
(AT2672.先都选择a后再慢慢改,这时思考:是否有一种排序方法使得左边若改,仅改成b,另一边也仅改成c.)

3* 逆
之前的结果即为现在的开端,此前的操作均将被撤回.逆时间而行.
加入比删去麻烦--你不可以预处理(预留空间,建立索引等).
例子: (P3619.将第一部分后的T加上所有的负值,然后能加|bi|的条件是现在的T>=ti-|bi|)
(P2107.先走到底,再一步步走回去--这使得数只减不增.)
(P3045.利用到了"加入比删去麻烦"的思路.)
(P6602.加点,则一些max不断变小,需线段树维护;反之删点会使得max不断变大,仅需变量维护.)

2* 画图
例子: (AT2044.断掉1连出的边后转变为树,自底向上遍历(都尝试下就知道了),一有不满足的点就直接连到1.)

3* 依赖关系 & 无后顾之忧
先将被依赖的求出,倒推回去.
例子: (P7831.去掉-1相关内容后,最大的边无论是否在环中,凡能经过它则必能无限循环,因此它没有依赖,则该点)
(P3127.假如从大到小遍历,若一个大区间就算里面无障碍物都冲不出去,则它内部的小区间就"无后顾之忧"了--肯定出不去呀;若一个大区间能冲出去,然后找到该区间a内部最大的障碍物并因此分成两块等价的区间b和c,若区间b在理想状态下能冲出b,那么必能冲出a,所以b给它内部的区间树立了信心--让它们无后顾之忧.)

4* 忽略
先忽略一些状况,找到一个普通情况下的最优,然后利用该最优去构造特殊情况下的方案.
or 有些内容对接下来的寻找无用,则可忽略掉.
例子: (P2751.思考B时,先忽略货物产生时间的不同,最后再拼接时间.)
(P1248.是一个反例,因同一个货物在AB加工的时间不同,故这些货物不能视为相同的货物.)
(P2893.当之前的内容"暂定"下来时,它们的位置已经不再有影响,则只关注其大小.)
(CF865D.比如1买2卖,接下来想换成1买3卖,发现就算不知道是在1的时候买入也能计算,故将1忽略.)

3* 少给自己找麻烦
例子: (P3076.先少思考些什么中途放下的操作,只在st,ed之间思考.)
(P2863.忽略修改时改成未出现过的数的情况.)

2* 不变量
追踪每一个数,而不是每一个位置.
例子: (CF549G.发现每个数+当前位置=定值.)

3* 分组
要求选出的数和>一半,可以两两分组后取较大的.
例子: (CF789D.按a大到小排序后,除了前面的1或2个,剩下的两两分组以满足b.)

贪心的原则应该是,对于当前时间p,要得到在收益最大前提下的花费最小,这是局部最优性,以此来更新之后的p.

3* 反悔
部分的反悔就是现在随便买,之后不想要时就退,等价于用多少付多少.
因此就没有了后顾之忧,可以先都买来再慢慢调整.
当然,"都买来"的意思是,对于普通的i有很大可能被先买下来.
例子: (CF865D.股票交易:i天若能卖出,则堆中插入2次,否则插入1次.)
(CF730I.用费用流模型建模,思考流量+1对应的情况,详见费用流.)

4* 猜测的方向
例子: (P4404.C替换了A,B中的一个,之后遇到A或B时却被换掉才尴尬,而与C没啥关系,所以贪心方向应思已有的内容下一次出现的位置.)

 

0* 类似的题目 (重题)
例子: (P2949,P1986,CF958E2)

标签:思维,位置,--,max,回想,例子,答案,贪心
来源: https://www.cnblogs.com/Fish-Clever/p/16540142.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有