AGC055
AGC055
第一次打AGC,好难受。
T1 看了一眼题解,没看懂……但是还是做出来了。
T2 感觉比 T1 简单,构造很好猜。
其他的没时间思考,T1 花了我 2h30min,难受。
A.ABC Identity
翻译:
给定长度为 的序列,其中字母 ABC 各有 个。
一个合法序列 满足以下条件:
-
其长度为 。
-
-
-
-
互不相同。
求一个把这个序列分成不多于 个合法的序列的方案。
可以证明,一定存在一种合法的划分。
分三段考虑。
std 做法是关于 ABC 的 6 种排列,依次枚举,贪心选择。
我在考场上是:先考虑前两半,相异配对,网络流解决。
不会产生相同配对的正确性?由于是相异配对,如果产生相同配对,则某一个一定超过了 个,不符合题意。所以网络流可以解决,贪心选择没问题。
网络流只有 个点,所以可以看作常数,复杂度 + O(1)
所以整体复杂度
妈的,傻逼网络流,真的服……
B.ABC Supremacy
考虑如下转化:
也就是我们贪心把所有的 放在最前面即可。(相当于删除)
由于拼接后也可能存在 ,所以利用栈的思想处理。
复杂度 。
C.Weird LIS
方法1:组合
参考 AGC055C - Legitimity 的博客 - 洛谷博客 和补充 题解:AGC55C Weird LIS - Edward1002001 的博客 - 洛谷博客
这里再做一点说明。
-
无用点为什么不可连续?考虑
4 3 5 2 1 7 6
,也就是非 非 必 无 无 非 非
。这个排列和2 1 3 7 6 5 4
,也就是非 非 必 非 非 非 非
是等价的。也就是说,连续的非
会使得我们重复计数。所以不可以连续。 -
ans
初始设置?其实枚举的是没有必经点的情况(全是非必经点),需要满足:所以才有 。但是我们还需要考虑当 时,可以存在全是必经点的情况,也就是
1 2 3 ... n
的情况。 -
-
为什么 ?这里枚举的是 , 的下界确定了,因为存在 ,所以 。
其他部分最终式子为:
方法2:自动机
参考 at_agc055_c Weird LIS 题解 - juruo - 洛谷博客
这里做一点解释:
-
状态机的设定,4种状态:
-
除了
CAN
,都能放 -
只能放
CAN
-
可以放
MUST
或者USELESS
,之后MUST
还可以跟MAY
-
可以放
MUST
或者USELESS
,之后MUST
不可以跟MAY
-
-
为什么有状态4?因为
k
确定了红黑对的数量,而我们是贪心的把所有红黑对尽可能放在前面。而可能存在只有非 非 无 必
的情况,所以有状态 3,通过MUST
转移到 1,通过USELESS
转移到 4,但是不能再来一个MAY
!
D.ABC Ultimatum
一道猜结论的题。
观察三个串,有 ABC
,BCA
,CAB
,我们考察能划分成这三种串的串的性质。
考虑每一个字母出现的次数:由于 B
只在 BCA
中在 A
前面,其他的类似。我们考虑定义 ,其他的类似。
可以发现,,同理,得到 。
这是必要条件,所以考虑证明充分性(不会。
所以我们可以设出一个 的 DP,令 表示 ABC 的数量以及 。
不过考虑 的时候才有贡献,所以可以省一维,变为 。
E.Set Merging
神仙思路题。
我们把整个序列看作一个排列,每一次的合并相当于交换排列中的两个位置。
而最终 ,一个后缀 和一个前缀 。
考虑归纳法,分 或者 讨论。
最终就是求合法序列的最小逆序对数。考虑贪心放置,用数状数组求。
总复杂度 ,可以通过6指针的方法优化到 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App