AGC011

这一场居然全部 Easy 了!!!

A

排序以后模拟即可。

B

二分答案,判定从小到大合并即可。

C (Easy 3/2)

发现 (a,b)(c,d) 当且仅当存在一对 acbd 的路径,使得其长度相等。

因为可以反复横跳,只需要有一条路径长度奇偶性相等即可。

这样的话如果不是二分图那路径奇偶性随意,如果是的话就确定奇偶性了。

分类讨论一下 a,cb,d 分别在哪个连通块内即可。注意,大小为 1 的连通块需要特判。

D (Easy 2/0)

手模一下可以发现一次操作有两种情况:

  • s1=A:直接被撞回去,s1 变为 B
  • s1=B:把 s 取反后循环左移一位。

感性理解加上打表可以发现 k>2n 的时候答案有长度为 12 的循环节,所以可以把 k 降到 O(n) 级别,然后就可以直接模拟了。

时间复杂度 O(n)

E (Easy 2/1)

n=a1+a2++am,记 sp 表示所有 ai 的十进制第 p 位之和。我们只需要满足以下两点,就一定能构造出 m=max{sp9} 的一组合法解:

  • i10isi=n
  • sisi+1

直接二分答案,从后往前确定 s 可以做到 O(lognloglogn),足够通过。

另一个思路是一个数是上升数当且仅当其可以被表示为 9 个形如 10x19 的数,那么 n 可以被表示为 k 个上升数的和当且仅当存在 p1,,p9k,使得

9n+9k=i10pi

9n+9k 的各位数码之和不超过 9k。发现这个 k 并不大,直接枚举可以做到均摊 O(logn) 的时间复杂度。

F (Easy 3/3)

题面的图给得好啊!如果没有这张图我估计会多走很多弯路!

我们发现,只要不改变线段的相对顺序,横条是可以任意挪动的。这意味着我们可以钦定 n0 的列车从 0 时刻开始走并且不停歇。

于是我们把问题转化为了在模 k 意义下,有一个初值任意的整数 x,每次需要给 x 加上一个数,使得其落在一个区间内,求加数的和的最小值。

fi,j 表示 i 次操作后 x=j 的最小值,使用线段树转移就是每次给一个区间重新赋值,直接把所有区间端点离散化,然后维护 fjj 的最小值就行了。

时间复杂度 O(nlogn)

posted @   Scintilla06  阅读(14)  评论(0编辑  收藏  举报
相关博文:
·  AGC039
·  AGC020
·  AGC011
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示