贪心的标签是谁给的!!?

P3146 [USACO16OPEN] 248 G

题解里不是有吗。。?
by moye到碗里来 @ 2018-09-11 19:07:34


@[Chevalier](/space/show?uid=60818) 贪心的基本思路是从最小的1开始,将能合并的项先全部合并,这样我们在合并更大项的时候就不用考虑比他小的项能否会对当前的选择有影响,然后按奇数偶数分
by U121570 @ 2018-09-11 19:11:15


首先,贪心的基本思路是从最小的1开始,将能合并的项先全部合并,这样我们在合并更大项的时候就不用考虑比他小的项能否会对当前的选择有影响。 不妨设我们现在正在合并数字X 情况一: 有一段偶数个(不妨设为2*k+个)连续的X,这种情况不需要怎么思考,直接变成k个X+1。(不要考虑4个X变成X+1这些问题,那是我们接下来合并X+1的时候处理的问题) 情况二:有一段奇数个(不妨设为2*k+1个)连续的X,这种情况处理比较巧妙,我们先将左边k个变成X+1,把最中间的数变成-1(起分割作用) ,再将右边的k个数变成X+1. 下面是解释时间: 首先,假设我们有奇数个连续的X,不管我们怎么合并,这一段左边的数字将永远不可能和这一段右边的数字合在一起(此时我们已经将小于X的数字处理完了),因为一定会有一个单的X卡在中间,这也意味着,左右两边变成了两个互不相干的子问题。 本来我们应该纠结新合成的k个X+1应该放在左边还是右边,但是由于题目只要求最大化最大值,我们不妨先同时放在两边,等某一边出现了最大值我们再将另外一边的k个X+1删掉(只是再思考的过程中删掉),对结果和规则都没有影响。 由于上面的话我自己都读不懂。。。我们举一个浅显易懂的例子 3,2,1,1,1,2,3,4 我们现在讨论中间三个1的合并方式,我们目前不知道合并到左边还是右边最优,所以我们在两边同时试一下: 3,2,2,1,2,2,3,4 以1 作为分隔符划分成两个子问题,分别合并后变成 4,1 ,5 右边比较大,所以我们发现刚才放在右边比较好,把左边还原 3,2,1,5 但是我们只要求最大值,所以不用还原,输出来就是了 同时为了方便,我们可以把分隔符统一成-1即可 ##### 不是本人的
by U121570 @ 2018-09-11 19:11:40


@[Chevalier](/space/show?uid=60818)
by U121570 @ 2018-09-11 19:11:45


哇谢谢!OTZ @[U121570](/space/show?uid=121570)
by Chevalier @ 2018-09-11 19:13:31


@[Chevalier](/space/show?uid=60818) 不是我的
by U121570 @ 2018-09-11 19:14:20


qwq
by VanHelsing @ 2019-12-14 15:10:50


瓜真甜~~
by 智子·起源 @ 2020-03-12 21:39:09


瓜真甜~~
by 就皮这一下 @ 2020-05-08 08:44:50


名字都灰惹。。。
by The_Star @ 2020-06-26 19:17:57


|