好题选写
P2476
很好的绿 dp,场上卡我 2h,场上只考虑了二进制状压,然后组合数填数,最后发现没法去除重复情况。
说一下简单的正解,这题组合数也是能搞的,只是需要多开一维记录当前存在多少相邻的同色位置。考虑到
P2051
以为是挺简单的 dp,结果场上没写出来。
发现每一列/行只有三种情况,有 0/1/2 个棋子,假如我们枚举行,限定行的放置个数,就只需要考虑列的情况了,具体地,我们只需要维护前
当新拓展的一行不放棋子的时候:
当新的一行放一个棋子的时候,分类讨论是增加哪种列:
放三个棋子的时候同理讨论转移:
注意取模,统计答案即可。
P5304
之前集训的时候就听过的 trick,没想到这场考了,竟然还是不会,我是菜b。
首先,我们暴力枚举再最短路的复杂度是
注意两个集合需要互相跑最短路,要建两个图。
AT_dp_q
场上还以为能评个蓝,一开始看到有人 10min 过了,吓一跳,疯狂写,然后假了一次 (。
考虑设计
P6273
上场卡死我的唐题,对标 2023CSP-S T2,真唐完了,今年不会 CSP 还是个 2= (。
场上考虑了类似消消乐那题的答案合并,发现两个答案区间并起来也是合法的,所以我们可以用类似消消乐的方式跳链表维护,但显然这样是假的,随便构造一组类似 baaaaaaaa...
的样例就卡爆了。
正解,注意到,令 map
里面,记个数即可。
P10083
很好的体现了场上没用草稿纸的问题,考虑分析区间合法的充要条件。
-
区间的总和不能为负,即
,记作一式 -
任意时刻,我们都必须能打出下一张牌,最坏情况就是把所有负收益的放在前面打出来,即
-
进一步考虑,在上述情况下,我们还要考虑负收益的牌这时候能不能打出来,最坏情况肯定就是它是最后一张负收益的牌,然后判断是否合法,即
整理一下后两个式子,写作
则我们需要同时满足两个式子,分别讨论:
-
对于第一个式子,令
,则第一个式子为 ,即 。 -
对于第二个式子,可以发现,左边式子单调不增,右边式子单调不减,存在这样的性质,我们可以直接双指针维护。
具体地,我们可以拿 ST 表维护二式右边式子,然后每次双指针拓展到最远的
P10930
两个多月之前做的了,题挺好的,写一下。
现在我们要在树上支持三个操作。加特殊点,抹除特殊点,求特殊点路径覆盖边的长度。这种东西看起来挺难搞的,那我们就一步一步模拟着来看。
人类直觉做法,发现所有情况可以分类讨论,假定当前点为
只有前驱或者只有后继的情况没什么好讨论的,我们考虑一般情况。
拟定当前的根有三棵子树,每棵子树下挂着一堆点,令
画出图类似这样,我们记根的三棵子树分别为
此处以增加为例,删除同理,讨论三个点的位置关系,前驱为
-
在 子树内, 在 内,就不画图了,抽象理解一下,我们需要加上 。 -
在 子树内, 在 子树内,我们需要加上 ,此处 为根节点。 -
在 内, 在 内,同情况一。 -
在 内, 在 内,我们需要加上 。
我们将每种情况的加减都变为
还有上面说到取的不是最近点的问题,就是类似情况三的时候,子树
用 set
维护特殊点,二分 dfn 序再算答案就好了,复杂度
补:过了 P3320 这个结论应该会更好理解一些,就是走过去再从终点走回来,每条边都被覆盖两次,再除掉就好了。
P4137
回滚莫队基础练习题,可是我们不会回滚莫队,考虑另类做法。
使用回滚的原因,是
在思考,发现这种算法的瓶颈还是在于添加的
ABC298E
开学之后感觉就开始颓了,做点简单题。
概率 dp,我不会的东西,考虑大力 dp,设
直接大力转移:
复杂度
P8025
感觉好久没更新了,最近做题好慢啊,写简单题。
题意就是每次树上俩点走
这东西显然是可以大力树剖的,发现转折点是一个关键的点,前半段上升,后半段下降,分类讨论就好了。记
-
当
的时候,说明一定走不到,我们直接考虑跳链,一条链的链头记作 ,当 的时候,说明这一条链都不符合答案,继续跳即可,反之则答案就在这条链里面,答案是显然具有单调性的,直接在链上二分即可,这里就是树剖的性质,一条链上的节点编号是连续的。 -
当
的时候,答案就是 。 -
否则,答案就在下降路径上,上升路径的步数是固定的,直接减去即可,然后类似上升过程中的跳链做法,判断步数在最后一条链上二分找答案即可。
复杂度
P1654
不会期望,所以刷点水期望 dp。
发现这个连续段不好搞,转成一个一个增加来看,假如有原答案
CF1997E
差点场切的 *2200,一个月前做的,补一下题解,虽然也是一个多月前写的(。
写一下 E 吧,毕竟想了我好久。不会正解 BIT,写暴力根号分治,也就比正解慢了 1000ms 而已(?)。
首先,我们能够想到一种暴力,我们离线下来询问,依次按照
考虑哪里还能再优化,发现当
P5648
感觉是很神奇的题,首先会有一个跳
发现这种跳的过程我们很类似的会用在倍增求 LCA 中,我们往哪方面想,假如我们将一步跳跃看做树上一跳向上的边,那么我们最后的答案就是求树上前缀距离了,这就很简单了。
神奇的,code
P5789
口胡成功力。
先不管它是怎么走的,先考虑一个点可能怎么走来,显然就是和它相连的点的方案数相加对吧,写成转移方程,令
再考虑,还有自爆和不动的情况,自爆我们可以连一个点到外面,然后让那个点连自环,然后再让每个点跟自己相连,就处理了不动和自爆的情况,就完了。
ABC332F
简单期望,期望做的还是少,还在考虑和后面有一点捆绑关系。
考虑当一个区间新增时,对于一个在区间内的值
P3979
经典 tick 树剖换根,虽然树剖没有办法直接换根,但是我们可以分类讨论解决。
简单分析可得,记当前点为
ABC371F
好题。为什么好?因为我不会。
首先能够想到每次向左向右会使得一整块棋子向目标点右边偏移,这就需要我们二分处理,是可以做的,处理之后,区间推平,再覆盖一个等差序列就好了,这样做是可以的,但是麻烦,考虑简单做法。
第一次见这个 trick,考虑令
P8817
赛前写写真题了属于是,还是挺简单的。
由于每段路程都是分开的,只有选点不能重复这一个条件,我们可以把所有点走 vector
存下来,发现这样就可以把图缩小,每条边连接的点代表他们之间的距离小于等于
一发过,好耶。
P11253
开颓,不会绿。
感觉很抽象啊,注意到
CF809C
模拟赛场上会了单点求值的办法,没想到前缀求和,无敌了。
一种不用注意力的方法,通过打出
每次询问一个矩形的答案,自然可以差分变成询问四个左上角在
由于这个东西的特性,我们先将他向外补到
像这样,假设他在右下角,那么蓝色部分就是一个完整的边长为
类似的,假设这个点在左下角或者右上角,那么他就只剩向左/上的红色部分,这个跟上面一致是可以算出来的,然后在递归小矩形的答案,但是由于他不在主对角线上,所以他的值会有一定偏移量,其实就是
假设这个点在左上角,就是当前区间取大了,还可以取到更小的正好包含这个点的区间,所以令
代码很好写,注意取模。
P1169
跟上一场模拟赛 T4 一样的 trick 啊,悬线法 dp,解决二维 dp 中的某些求矩形的问题。
以本题为例,我们要求一个最大的 01 交错的矩形和正方形,直接做肯定是不好搞的,包括什么二分答案之类的,因为你不好写 check,而暴力 check 是
考虑一种不一样的 dp 方式,定义
显然,因为我们要找的是一个矩形,边长肯定是一定的,按照一段上下连续的 10 序列来看,要求这个序列中最小的
具体来说,先横向处理,当当前位置和前一个位置颜色不同时,
之后,纵向处理,当这个点与上一行的颜色不同时,
代码很好写,code
P9219
期末考完滚回来写题了,啥都不会了,菜的没谱。
感觉比较有意思的交互。
考虑保证有一个数不小于其他任何一个数的
有了这个结论之后,我们可以对
P2258
感觉状态好一点了,虽然没有独立切掉。
暴力显然就是枚举行枚举列,因为确定了行数和列数,所以复杂度是
考虑优化,我们只枚举一维,假设枚举行的选的情况,我们只需要确定一个列的选法的最大值,也就变成了一维的问题,此时设计
P3874
01分数规划 + 树形dp。
先说一下分数规划吧,大概是要解决一个形似
对于这个东西,我们直接二分答案,则有
放到本题,基本与上述相同,每次二分答案平均值,将所有点的价值改为
复杂度大概是
CF2040C
典型的注意力大题,我们考虑令
假设我们向空序列中从小到大填数,肯定是把当前这个数放到中间剩余空位的最左/最右才能使结果最优。说一下为什么最右也能最优,我们称最小答案
CF2013E
没切掉 *2200,想了一会感觉没问题交上去 WA on #3,发现考虑少了。
最开始考虑的是
之后我们要选择第二个值,其实可以把
再仔细分析,令全部数
P11126
显然是放到值域上 dp,由于一个点的方案只跟上一个和上上个有关,所以我们可以设计
令
P4215
好题,我们考虑类似李超树的分割方式,将所有答案区间放到线段树上,记录每个区间的拆分个数,做单点修改时向上 pushup 判断这个区间是否已空,如果已空,那么清除这个区间的所有答案下标即可,具体实现就是线段树每个节点开 vector
,复杂度
CF2063E
草,分析对了大部分手贱拆了个式子做不了了。
考虑拆式子,
等我再研究一下启发式合并做法。
P11829
构造还是做的太少了,开刷蓝题吧。
由性质入手,考虑当图中存在至少三个连通块时做法显然,而对于两个连通块,一个点数少的用一个颜色,另外剩一个大的随便取一个点就好了。
当图中只有一个连通块时,发现题目特别说明了只有
P11818
头一回写交互,这题倒是不难。
考虑到
否则,得到的答案中最大的数就是当前数的原始值(因为存在
经过很多轮这样的做法后,我们就会剩下不超过
分析一下询问次数,最开始我们需要
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】