AGC055

第一次打AGC,好难受。

T1 看了一眼题解,没看懂……但是还是做出来了。

T2 感觉比 T1 简单,构造很好猜。

其他的没时间思考,T1 花了我 2h30min,难受。

A.ABC Identity


翻译

给定长度为 \(3n\) 的序列,其中字母 ABC 各有 \(n\) 个。

一个合法序列 \(T\) 满足以下条件:

  • 其长度为 \(3k (1 \le k \le n)\)。

  • \(T_1 = T_2 = ... = T_k\)

  • \(T_{k + 1} = T_{k + 2} = ... = T_{2k}\)

  • \(T_{2k + 1} = T_{2k + 2} = ... = T_{3k}\)

  • \(T_1, T_{k + 1}, T_{2k + 1}\) 互不相同。

求一个把这个序列分成不多于 \(6\) 个合法的序列的方案。

可以证明,一定存在一种合法的划分。


分三段考虑。

std 做法是关于 ABC 的 6 种排列,依次枚举,贪心选择。

我在考场上是:先考虑前两半,相异配对,网络流解决。

不会产生相同配对的正确性?由于是相异配对,如果产生相同配对,则某一个一定超过了 \(n\) 个,不符合题意。所以网络流可以解决,贪心选择没问题。

网络流只有 \(6 + 2\) 个点,所以可以看作常数,复杂度 + O(1)

所以整体复杂度 \(O(n)\)

妈的,傻逼网络流,真的服……

B.ABC Supremacy

考虑如下转化:

\[A \overline{ABC} \to \overline{ABC} A \\
B \overline{ABC} \to \overline{ABC} B \\
C \overline{ABC} \to \overline{ABC} C
\]

也就是我们贪心把所有的 \(\overline{ABC}\) 放在最前面即可。(相当于删除)

由于拼接后也可能存在 \(\overline{ABC}\),所以利用栈的思想处理。

复杂度 \(O(n)\)。

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 初始设置?其实枚举的是没有必经点的情况(全是非必经点),需要满足:

    • \(k \le \lfloor \frac n2 \rfloor\)

    • \(k \le m\)

    • \(k \ge 2\)

    所以才有 \(\min(m, \lfloor \frac n2 \rfloor) - 1\)。但是我们还需要考虑当 \(m = n - 1\) 时,可以存在全是必经点的情况,也就是 1 2 3 ... n 的情况。

  • 为什么 \(\min(m, x + y) - \max(x, 3) + 1\)?这里枚举的是 \(k\),\(k\) 的下界确定了,因为存在 \(k - 1\),所以 \(k - 1 \ge 2 \iff k \ge 3\)。

其他部分最终式子为:

\[\sum_{x = 1}^{\min(m, n - 1)} \sum_{y = 0}^{\lfloor \frac {n - x}2 \rfloor}
{x + y \choose x} {x + 1 \choose n - x - 2y} (\min(m, x + y) - \max(x, 3) + 1)
\]

方法2:自动机

参考 at_agc055_c Weird LIS 题解 - juruo - 洛谷博客

这里做一点解释:

  • 状态机的设定,4种状态:

    1. 除了 CAN,都能放

    2. 只能放 CAN

    3. 可以放 MUST 或者 USELESS,之后 MUST 还可以跟 MAY

    4. 可以放 MUST 或者 USELESS,之后 MUST 不可以跟 MAY

  • 为什么有状态4?因为 k 确定了红黑对的数量,而我们是贪心的把所有红黑对尽可能放在前面。而可能存在只有 非 非 无 必 的情况,所以有状态 3,通过 MUST 转移到 1,通过 USELESS 转移到 4,但是不能再来一个 MAY

D.ABC Ultimatum

一道猜结论的题。

观察三个串,有 ABCBCACAB,我们考察能划分成这三种串的串的性质。

考虑每一个字母出现的次数:由于 B 只在 BCA 中在 A 前面,其他的类似。我们考虑定义 \(M_B = \max S_B - S_A\),其他的类似。

可以发现,\(M_B \le C_{BCA}\),同理,得到 \(M_A + M_B + M_C \le C_{ABC} + C_{BCA} + C_{CAB} = N\)。

这是必要条件,所以考虑证明充分性(不会。

所以我们可以设出一个 \(O(n^7)\) 的 DP,令 \(f_{a, b, c, x, y, z}\) 表示 ABC 的数量以及 \(M_A, M_B, M_C\)。

不过考虑 \(a + b + c = i\) 的时候才有贡献,所以可以省一维,变为 \(O(n^6)\)。

E.Set Merging

神仙思路题。

我们把整个序列看作一个排列,每一次的合并相当于交换排列中的两个位置。

而最终 \(S_i \to [ \min_{j = i}^n P_j, \max_{j = 1}^i P_j]\),一个后缀 \(\min\) 和一个前缀 \(\max\)。

考虑归纳法,分 \(P_i > P_{i + 1}\) 或者 \(P_i < P_{i + 1}\) 讨论。

最终就是求合法序列的最小逆序对数。考虑贪心放置,用数状数组求。

总复杂度 \(O(n + n \log n)\),可以通过6指针的方法优化到 \(O(n + n)\)。

随机推荐

  1. 力扣614(MySQL)-二级关注者(中等)

    题目: 在 facebook 中,表 follow 会有 2 个字段: followee, follower ,分别表示被关注者和关注者. 请写一个 sql 查询语句,对每一个关注者,查询关注他的关注 ...

  2. 力扣612(MySQL)-平面上的最近距离(中等)

    题目: 表 point_2d 保存了所有点(多于 2 个点)的坐标 (x,y) ,这些点在平面上两两不重合.写一个查询语句找到两点之间的最近距离,保留 2 位小数. 最近距离在点 (-1,-1) 和( ...

  3. 力扣419(java)-甲板上的战舰(中等)

    题目: 给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 board 上放置的 战舰 的数量. 战舰 只能水平或者 ...

  4. 转载 | 如何把 thinkphp5 的项目迁移到阿里云函数计算来应对流量洪峰?

    简介: 函数计算评测局的优秀征文! 如何把thinkphp5的项目迁移到阿里云函数计算来应对流量洪峰? 1. 为什么要迁移到阿里云函数? 我的项目是一个节日礼品领取项目,过节的时候会有短时间的流量洪峰 ...

  5. 【阿里云采购季】3月采购完,IT运维躺赢一年

    阿里云2020上云采购季正式上线啦!今年的采购季可以逛些啥? 采购季正式期时间: 3月2日-3月31日 在这段时间里,想买啥就买吧,别忘了把想买的产品加入购物车噢,特惠产品叠加购物车满减,更划算噢! ...

  6. 你不知道的 HTTPS 压测

    ​简介:随着互联网安全规范的普及,使用 HTTPS 技术进行通信加密,实现网站和 APP 的可信访问,已经成为公认的安全标准.本文将介绍针对 HTTPS 协议做压力测试的关注点,以及使用 PTS 做 ...

  7. [Docker] 使 Volume 独立于容器运行时的方式 - 让容器引擎去处理

    在单纯使用 run 命令运行一个容器时,通常会使用 -v 挂载的方式来实现宿主机数据卷映射到容器内. 使用命令: $ docker run --name mysql-con -v /my/custom ...

  8. QT Creator 远程调试 QT 程序

    一.测试环境 QT Creator 版本:5.12.9 开发板:rv1126 开发环境:ubuntu20.04 开发板内核:4.19 二.配置 ARM 交叉编译器 ARM 交叉编译工具,购买开发板时, ...

  9. 让 KEPServer 变成一款 Web 组态软件

    ​KEPServerEX是行业领先的连接平台,用于向您的所有应用程序提供单一来源的工业自动化数据.该平台的设计使用户能够通过一个直观的用户界面来连接.管理.监视和控制不同的自动化设备和软件应用程序. ...

  10. Asp .Net Core 系列:国际化多语言配置

    目录 概述 术语 本地化器 IStringLocalizer 在服务类中使用本地化 IStringLocalizerFactory IHtmlLocalizer IViewLocalizer 资源文件 ...