反悔贪心

P2107 小Z的AK计划

建议直接暴力,路上取 max 即可。

想太复杂了,WA 了一个点。

P1484 种树

经典题。

明明已经跟时间无关了不知道我为啥还硬要从左到右枚举。

考虑先取出最大的,再反悔。设位置为 i

如果要取 ai1,ai+1,那肯定是同时取,所以可以直接将 ai1,ai,ai+1 从堆里删除,然后再插入 ai1+ai+1ai

具体实现可以用链表。

反思:不能先入为主;学习费用提前计算的技巧。

[AGC018C] Coins

一道经典的模拟费用流题目。

先强制每个人选一个种类,然后考虑反悔。

发现反悔只有 5 种类型。

a->b b->c c->a  
a->c c->b b->a  
a->c c->a  
a->b b->a  
b->c c->b

于是我们直接拿六个堆模拟这个过程。

为什么反悔贪心会比直接费用流快???

反悔次数是 O(n) 次。

CF802O April Fools' Problem (hard)

可以建立费用流模型,隐约感觉是模拟费用流。

考虑这个费用流模型的本质是什么,其实是括号序列问题。

原问题的一种方案肯定可以对应一种合法括号串,记左括号为 1,右括号为 1,构造一个长度为 n 的前缀和序列 s。现在我们放 k 次括号,要求括号序列合法,并且代价最小。

每次就两种方法,() 或者 )(

第一种简单,直接找 ijai+bj 最小的就好了,线段树很好维护。

第二种有特殊限制,要求左括号所在的位置 k[i,j)sk>0

因为存在区间减法,维护 0 的位置是不方便的,所以我们转化一下,记 a0=b0=+,显然 s0=0。于是我们转化成 sk 必须满足大于最小值,这是比原先方便的。

对于区间 [l,r],我们维护:

  • ma,mbama,bmb 是区间 [l,r] 的最小值。

  • mn[l,r]s 序列的最小值。

  • la,lb[l,la),[lb,r] 是满足区间内所有的数都大于最小值的前后缀。且要求 ala,blb 最小。

  • va:情况一的答案。

  • vb:情况二的答案。

  • vc:情况二的临时答案(不满足限制)。

posted @   xishanmeigao  阅读(9)  评论(0编辑  收藏  举报
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示