【题解】ZONe Energy Programming Contest

评价

在 register 时,看到什么 energy drink 的选项才意识到这个 ZONe Energy 是个能量饮料公司。ATC 在日本影响力那么大的吗?

然后一看分数:100 200 400 300 500 600。知道了,肯定很毒瘤(估计是出题人能量饮料喝多了,然后就太毒瘤了)

题意+题解

整套题的设定貌似是一个外星人入侵地球,然后这个能量饮料公司出来周旋的样子。

当然很多题目内容和标题关系不大……

A - UFO Invasion

……比如这题……

实际题意为在给定串 (S) 中出现了多少次连续的 ZONe

暴力扫即可。

B - Sign of Friendship

……接下来剧情发展到好像外星人试图和地球人联系……

一栋很高的高楼在 ((0,0)) 处向 (y) 轴正半轴无限延伸,有若干条线段 (overline{(0,d_i)(h_i,d_i)}),求最小的 (x) 使 (overline{(0,x)(D,H)}) 与所给线段没有交点。

可以二分答案,或者更简单地——枚举线段最顶上那个点与 ((D,H)) 连线,最大的纵截距就是答案。

https://atcoder.jp/contests/zone2021/submissions/22203202

C - MAD TEAM

……貌似是你要组织外交团队……

(n) 个人,每个人有五个属性,现在你要选出 (3) 个人,总属性值为三个人中该属性最大的值,力量指为总属性值中最小的哪一个,求最大力量值。((nle 3000)

5ab 当时这道题卡了好久,以为 400 真的很难一样。其实后来想想也还好。


一直最大中的最小,最小中的最大?可以二分答案。

当然,5ab 不是这么做的。先枚举两个人,注意到另外一个人有选择的必要,当且仅当这个人 有某个属性的后缀最大值

然后枚举每个属性即可,预处理后缀最大值位置,复杂度 (mathcal{O}(25n^2))

https://atcoder.jp/contests/zone2021/submissions/22216693

D - Message from Aliens

……然后是互相通信……

(T) 初始为空,现在有两种操作:

  • 在末端加入一个字符;
  • 将字符串反转。

完成所有操作后,还要删除所有 (T) 当中所有 连续的两个相同字符,并将分开的两个串合并,直到无法操作为止。输出 (T)

注意到整体的反转非常费时,我们可以打一个标记。如果有这个标记就从头部插入,并且反向输出,然后改用双端队列维护。

经过观察,插入完后的操作其实是可以提前至插入的。如果插入的字符与前一个相同就同时移除。

https://atcoder.jp/contests/zone2021/submissions/22206799

(可见 5ab 是先做 D 再做 C 的)

E - Sneaking

sneak v. 偷偷地走

……看来是要潜入大本营啊……

给定一个网格图,每条边上都有权值。你只能在网格图上往前,往左,往右。同时,如果你往后退 (i) 格,那么权值为 (i+1)

你在左下角,UFO 在右上角 ((r,c)) 的位置,求你到 UFO 的最短路。((r,cle 500)

显然暴力最短路是不可的,我们考虑优化建图。

注意到往后倒退权值的变化是线性的,所以我们可以考虑建分层图。

  • 一层图是原先的网格图;
  • 另一层图可以理解成 天空(你往回「跳」了若干格),只建往后的边,权值为 (1)
  • 在两层图之间建立桥梁,由于权值还要多 (1),所以要有多余 (1) 的权值。(5ab 的方法是往上权值 (1),往下 (0)

这样一个点最多建 (6) 条边,dijkstra 跑一跑就行了。

https://atcoder.jp/contests/zone2021/submissions/22221988

F - Encounter and Farewell

……好家伙这是进入了银河系网络了吗……

(N) 个节点,从 (0)(N-1) 编号。有 (M) 个递增正整数 (A_i),如果两个节点 (u)(v) 满足 (uoperatorname{xor} v = A_i) 则这两个节点之间没有连边,反之则有边。

(存在 (nin mathbb{N}^{+}) 满足 (N=2^n)(1le nle 18)

求这个无向图是否连通,如果是给出一棵最小生成树。

又是赛时懵掉的一道题。当时猜了个结论结果 wa+tle 了,然后就结束了。

暂时 5ab 也没有彻底理解,建议访问这位 ( ightarrow) ak 奆佬的博客

总之,需要至少 (n) 个互不相同的异或组(两两异或得不到另外一个)来构建最小生成树。实际上就是建一个线性基,然后用一定的可行集去反推 MST。

UPD on 2021-05-05:题解写好了。


非常感谢您读完此文章。

如果您喜欢这篇文章,请点一个赞支持一下博主。

如果您对此文有意见,欢迎在评论区留下你的看法,5ab 会尽力达到。

如果您真的不喜欢这篇文章,也请不要喷,5ab 欢迎私信反馈意见。

原文地址:https://www.cnblogs.com/5ab-juruo/p/zone2021-statement_solution.html