AGC 049 总结+ABCD题解

本文总结了AGC049的比赛情况,并详细解析了A-Erasing Vertices、B-Flip Digits、C-Robots和D-Convex Sequence四道题目的解题思路。针对每道题目,提供了独特的分析视角和技术实现方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AGC 049 总结+ABCD题解

比赛链接

赛况:

202img Gary {\color{Yellow} \textrm{Gary} } Gary 1800 ( 4 ) 187 : 23 1800 (4)\\187:23 1800(4)187:23 400 51 : 51 400\\51:51 40051:51 600 48 : 32 600\\48:32 60048:32 800 ( 4 ) 167 : 23 800 (4)\\167:23 800(4)167:23---

A - Erasing Vertices

这题想的方向错了就比较麻烦了。我一开始以为是上面DAG上dp。卡了一会,做完B题回来三分钟就会做了。

题解:

考虑一个节点 T T T有多大的概率被选中,假设能到达 T T T的点的集合为 S S S。显然能选择 T T T,必须 T T T S S S中第一个被选择的。则概率为 1 ∣ S ∣ \frac{1}{|S|} S1。它被选择的期望次数为 1 ∣ S ∣ \frac{1}{|S|} S1。则对答案的贡献为 1 ∣ S ∣ \frac{1}{|S|} S1

n<=100,可以处理出每一个点有多少点能到达它。

时间复杂度为 O ( n 3 ) O(n^3) O(n3),其实也可以通过bitset优化到 O ( n 3 / 64 ) O(n^3/64) O(n3/64)

B - Flip Digits题解

本场比赛最水的题,基本上看了一眼就有了思路。但实现上每个人略有差异。

操作可以看作:

  • 消除两个连在一起的1
  • 将"01"变为"10",将一个1左移一位

可以发现S中的1为T中的1+2*x。

从后往前考虑,可以发现每一个1,要么往前去和T中的某一个1匹配,要么和前面的某一个1互相消除(肯定是最近的),要么停在原地等后面的来消除。

直接维护一个栈就好了。注意记录栈中元素的奇偶性。

C - Robots

这一题比较坑,你必须要想到step2的最优策略才可以决定step1怎么走。

首先我们将 a [ i ] , b [ i ] a[i],b[i] a[i],b[i]转换成l[i]和r[i]。表示第r[i]个机器人会从r[i]走到l[i] (如果不被消灭的话)。

若所有的l[i] 都>=1 ,则不管它们怎么弄都不会影响到0.则答案等于0

否则,若那些l[i]<=0的都会被其他l[i]>=1的消灭,则答案还是0

若没法全部消灭,则可能会向左延申一些机器人的l[i],向右延申一些机器人的l[i]。注意这些操作可以两两一组,算一次操作。

D - Convex Sequence

这题套路比较明显:维护差分的差分。

由于差分递增,所以差分的差分除了第二个都只需要满足>=0即可。

但是第二个是负数就不太好办了。

我们想一想这是什么造成的?

原因:2*a[2] < a[1]。

我们画一画图就可以发现,我们可以枚举最低点的位置,然后将它下移到0的位置就可以避免这个问题。

然后再分别计算两半的dp就可以了。每一部分是 O ( M × M ) O(M\times \sqrt M) O(M×M )

则最终对于第i个点的答案= ∑ j + k + x ∗ n = M L i − 1 , j ∗ R n − i , k \sum_{j+k+x*n=M} L_{i-1,j}*R_{n-i,k} j+k+xn=MLi1,jRni,k

这个像卷积一样的东西一开始把我卡了很久。由于要枚举上面的 x x x。个数是 M / N M/N M/N的,会TLE。

其实我们只需要把它放在一边就可以了。

∑ j + k = M L i − 1 , j ∗ R n − i , k − x ∗ N \sum_{j+k=M} L_{i-1,j}*R_{n-i,k-x*N} j+k=MLi1,jRni,kxN

这样时间复杂度为 O ( M × M ) O(M\times \sqrt M) O(M×M )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值