Atcoder Beginner Contest 277(A~Ex)

又是只过了五道半题的一天.jpg

手速场无疑。


赛时

A 找数组中一个数的下标;B 简单字符串判断;C map+搜就行了。

D 考虑先离散化,然后暴力找权值最大的连通块即可。

E 考虑到每按一次按钮全图的边就会改变,且只有两种不同形式的图。所以可以拆点,将图分层,对于可以按按钮的点就将拆成的两个点连起来即可。不过注意到按按钮不耗费操作,所以按钮边权为 0,正常边权为 1,开个双端队列跑 0-1 bfs 就行。

到这里一共打了 35 min,然后开始罚坐。不过值得欣慰的一点是没有耗费额外的罚时。

看了 10 min F,想到了无论怎么变换,每一行的元素依然在同一行,每一列的元素也依然在同一列。又去看了 10min G,感觉是个 nb 的期望 dp,也不太会。

于是又回去看 F,又想到了可以对于行和列分别判断约束,对于行的约束其实就是,将每一行的最小值最大值看成一个区间后,要求区间不能相交,写了之后发现还是不会约束列.jpg,但实际简单的很(赛时脑抽系列


赛后

F - Sorting a Matrix

F 好难调啊……

对于行的约束除了上面说的之外,可能需要特判 min=max 的情况,不然或许会对线段重合的判断造成影响,这点调了俩小时;以及也特判一行全 0 的情况。

那对于列的约束怎么处理呢?我们发现对于每一列实际上是给了我们若干形如【第 i 列小于第 j 列】的约束关系,那么我们不妨将行内元素排序,在忽视 0 的情况下,从较小权值的列向较大权值的列连边,最后看图中有没有环即可判断约束是否矛盾。

不过注意还存在一车元素相等,另一车相邻的元素也相等的情况,此时如果直接由左侧元素向右侧元素两两连边复杂度显然不对,于是我们可以采用经典的优化建图 trick,将相等的元素统一连到一个新建的虚点上,再从这个虚点向后一个元素连边即可。

时间复杂度 O(HlogH+H×W).


G - Random Walk to Millionaire

破防了破防了,彻底破防了,被自己弱智错误的多样性整的破大防。

周日 star 模拟赛打过相似思路的题目。考虑倒序 dp,设 dpi,j进行了第 kj+1 到第 k 次行动,且当前在节点 i 时的答案期望。思考两种操作分别对于当前答案的贡献。

对于操作 1,我们会让之前的若干个 x2 变成 (x+1)2,直接转移期望不好转移,由于 (x+1)2=x2+2x+1,于是考虑维护 fi,j 表示当前一次项的期望,gi,j 表示当前零次项的期望,依次转移,有转移方程:

dpu,i=1deguv(dpv,i1+2×fv,i1+gv,i1)fu,i=1deguvfv,i1+gv,i1gu,i=1deguvgv,i1

对于操作 2,我们相当于增加了一下 0 次项,所以将 0 次项加 1 之后算期望即可。

初始对于每个节点 igi,1=1,时间复杂度 O(nk)。感觉类似这种【带有一个影响后续贡献计算的属性】的 dp 大多都可以倒序做,会简单许多。

赛后脑残用前缀积预处理优化求 inv 的过程,忘记将前缀积差分了,并且一点异常都没有发现,于是调了四五个小时+重构代码一次,彻底破防orz


Ex - Constrained Sums

第一想法是差分约束,但是并不好做,因为约束的是加和形式而非差的形式。

于是考虑 2-SAT 的变式 K-SAT。

考虑将每一个变量都拆成 m+1 个点,分别表示 [xij],并建立他们的否命题节点 [xi>j]。然后对于每个条件考虑如何连边进行约束。(注意下面每一个约束的逆否命题同样也需要连边)

  • [xij][xij+1]

  • (ai,bi,li)0jm[0lij1m][xaij][xbi>lij1]

  • (ai,bi,ri)0jmin(ri,m)[0rij1m][xai>j][xbirij1]

  • (ai,bi,li)[0lm1m][xailm1][xai>lm1]

  • (ai,bi,ri)[0rm][xai>r][xair]

差不多就这些约束条件,依次连边即可。至于原因,看了连边方式之后应该也很容易想到。

除此之外由于值不可能大于 m,所以还需要对于每一个 x 处理边界:

[xi>m][xim]

跑 tarjan 缩点即可,若一对约束条件在同一强连通分量中则无解,时间复杂度 O(nm).

双倍经验 Too Many Constraints.


启发

破防了没有心情再写什么启发了……真的是感受到了自己脑残错误的多样性。

只能说代码尽量想清楚一次写对吧,以及调试时多留意不引人注意的部分。

赛时的话还是要多转化模型做题。

FGH 题均调试 4h,还都是半会的题目,累了。

posted @   ydtz  阅读(107)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示